fix datatype mismatches

This commit is contained in:
Anatol Belski 2014-10-27 13:08:21 +01:00
parent 82c36cf5e8
commit 11b119d526
5 changed files with 33 additions and 41 deletions

View file

@ -79,7 +79,7 @@ static PHP_INI_MH(OnUpdateTags)
val = strchr(key, '=');
if (val) {
char *q;
int keylen;
size_t keylen;
*val++ = '\0';
for (q = key; *q; q++)
@ -351,7 +351,7 @@ static inline void xx_mainloop(url_adapt_state_ex_t *ctx, const char *newdata, s
char *end, *q;
char *xp;
char *start;
int rest;
size_t rest;
smart_str_appendl(&ctx->buf, newdata, newlen);
@ -906,10 +906,13 @@ yy76:
stop:
rest = YYLIMIT - start;
scdebug(("stopped in state %d at pos %d (%d:%c) %d\n", STATE, YYCURSOR - ctx->buf.c, *YYCURSOR, *YYCURSOR, rest));
/* XXX: Crash avoidance. Need to work with reporter to figure out what goes wrong */
if (rest < 0) rest = 0;
if (YYLIMIT < start) {
/* XXX: Crash avoidance. Need to work with reporter to figure out what goes wrong */
rest = 0;
} else {
rest = YYLIMIT - start;
scdebug(("stopped in state %d at pos %d (%d:%c) %d\n", STATE, YYCURSOR - ctx->buf.c, *YYCURSOR, *YYCURSOR, rest));
}
if (rest) memmove(ctx->buf.s->val, start, rest);
ctx->buf.s->len = rest;
@ -993,7 +996,7 @@ static int php_url_scanner_ex_deactivate(TSRMLS_D)
return SUCCESS;
}
static void php_url_scanner_output_handler(char *output, uint output_len, char **handled_output, uint *handled_output_len, int mode TSRMLS_DC)
static void php_url_scanner_output_handler(char *output, size_t output_len, char **handled_output, size_t *handled_output_len, int mode TSRMLS_DC)
{
size_t len;
@ -1023,7 +1026,7 @@ static void php_url_scanner_output_handler(char *output, uint output_len, char *
}
}
PHPAPI int php_url_scanner_add_var(char *name, int name_len, char *value, int value_len, int urlencode TSRMLS_DC)
PHPAPI int php_url_scanner_add_var(char *name, size_t name_len, char *value, size_t value_len, int urlencode TSRMLS_DC)
{
smart_str val = {0};
zend_string *encoded;

View file

@ -28,7 +28,7 @@ PHP_RINIT_FUNCTION(url_scanner_ex);
PHP_RSHUTDOWN_FUNCTION(url_scanner_ex);
PHPAPI char *php_url_scanner_adapt_single_url(const char *url, size_t urllen, const char *name, const char *value, size_t *newlen TSRMLS_DC);
PHPAPI int php_url_scanner_add_var(char *name, int name_len, char *value, int value_len, int urlencode TSRMLS_DC);
PHPAPI int php_url_scanner_add_var(char *name, size_t name_len, char *value, size_t value_len, int urlencode TSRMLS_DC);
PHPAPI int php_url_scanner_reset_vars(TSRMLS_D);
#include "zend_smart_str_public.h"

View file

@ -77,7 +77,7 @@ static PHP_INI_MH(OnUpdateTags)
val = strchr(key, '=');
if (val) {
char *q;
int keylen;
size_t keylen;
*val++ = '\0';
for (q = key; *q; q++)
@ -287,7 +287,7 @@ static inline void xx_mainloop(url_adapt_state_ex_t *ctx, const char *newdata, s
char *end, *q;
char *xp;
char *start;
int rest;
size_t rest;
smart_str_appendl(&ctx->buf, newdata, newlen);
@ -358,10 +358,13 @@ state_val:
*/
stop:
rest = YYLIMIT - start;
scdebug(("stopped in state %d at pos %d (%d:%c) %d\n", STATE, YYCURSOR - ctx->buf.c, *YYCURSOR, *YYCURSOR, rest));
/* XXX: Crash avoidance. Need to work with reporter to figure out what goes wrong */
if (rest < 0) rest = 0;
if (YYLIMIT < start) {
/* XXX: Crash avoidance. Need to work with reporter to figure out what goes wrong */
rest = 0;
} else {
rest = YYLIMIT - start;
scdebug(("stopped in state %d at pos %d (%d:%c) %d\n", STATE, YYCURSOR - ctx->buf.c, *YYCURSOR, *YYCURSOR, rest));
}
if (rest) memmove(ctx->buf.s->val, start, rest);
ctx->buf.s->len = rest;
@ -445,7 +448,7 @@ static int php_url_scanner_ex_deactivate(TSRMLS_D)
return SUCCESS;
}
static void php_url_scanner_output_handler(char *output, uint output_len, char **handled_output, uint *handled_output_len, int mode TSRMLS_DC)
static void php_url_scanner_output_handler(char *output, size_t output_len, char **handled_output, size_t *handled_output_len, int mode TSRMLS_DC)
{
size_t len;
@ -475,7 +478,7 @@ static void php_url_scanner_output_handler(char *output, uint output_len, char *
}
}
PHPAPI int php_url_scanner_add_var(char *name, int name_len, char *value, int value_len, int urlencode TSRMLS_DC)
PHPAPI int php_url_scanner_add_var(char *name, size_t name_len, char *value, size_t value_len, int urlencode TSRMLS_DC)
{
smart_str val = {0};
zend_string *encoded;

View file

@ -86,12 +86,12 @@ static inline void php_output_init_globals(zend_output_globals *G)
/* }}} */
/* {{{ stderr/stdout writer if not PHP_OUTPUT_ACTIVATED */
static int php_output_stdout(const char *str, size_t str_len)
static size_t php_output_stdout(const char *str, size_t str_len)
{
fwrite(str, 1, str_len, stdout);
return str_len;
}
static int php_output_stderr(const char *str, size_t str_len)
static size_t php_output_stderr(const char *str, size_t str_len)
{
fwrite(str, 1, str_len, stderr);
/* See http://support.microsoft.com/kb/190351 */
@ -100,7 +100,7 @@ static int php_output_stderr(const char *str, size_t str_len)
#endif
return str_len;
}
static int (*php_output_direct)(const char *str, size_t str_len) = php_output_stderr;
static size_t (*php_output_direct)(const char *str, size_t str_len) = php_output_stderr;
/* }}} */
/* {{{ void php_output_header(TSRMLS_D) */
@ -238,15 +238,8 @@ PHPAPI int php_output_get_status(TSRMLS_D)
/* {{{ int php_output_write_unbuffered(const char *str, size_t len TSRMLS_DC)
* Unbuffered write */
PHPAPI int php_output_write_unbuffered(const char *str, size_t len TSRMLS_DC)
PHPAPI size_t php_output_write_unbuffered(const char *str, size_t len TSRMLS_DC)
{
#if PHP_DEBUG
if (len > UINT_MAX) {
php_error(E_WARNING, "Attempt to output more than UINT_MAX bytes at once; "
"output will be truncated %lu => %lu",
(unsigned long) len, (unsigned long) (len % UINT_MAX));
}
#endif
if (OG(flags) & PHP_OUTPUT_DISABLED) {
return 0;
}
@ -259,21 +252,14 @@ PHPAPI int php_output_write_unbuffered(const char *str, size_t len TSRMLS_DC)
/* {{{ int php_output_write(const char *str, size_t len TSRMLS_DC)
* Buffered write */
PHPAPI int php_output_write(const char *str, size_t len TSRMLS_DC)
PHPAPI size_t php_output_write(const char *str, size_t len TSRMLS_DC)
{
#if PHP_DEBUG
if (len > UINT_MAX) {
php_error(E_WARNING, "Attempt to output more than UINT_MAX bytes at once; "
"output will be truncated %lu => %lu",
(unsigned long) len, (unsigned long) (len % UINT_MAX));
}
#endif
if (OG(flags) & PHP_OUTPUT_DISABLED) {
return 0;
}
if (OG(flags) & PHP_OUTPUT_ACTIVATED) {
php_output_op(PHP_OUTPUT_HANDLER_WRITE, str, len TSRMLS_CC);
return (int) len;
return len;
}
return php_output_direct(str, len);
}
@ -1272,7 +1258,7 @@ static int php_output_handler_compat_func(void **handler_context, php_output_con
if (func) {
char *out_str = NULL;
uint out_len = 0;
size_t out_len = 0;
func(output_context->in.data, output_context->in.used, &out_str, &out_len, output_context->op TSRMLS_CC);

View file

@ -110,7 +110,7 @@ typedef struct _php_output_context {
#define PHP_OUTPUT_TSRMLS(ctx) TSRMLS_FETCH_FROM_CTX((ctx)->tsrm_ls)
/* old-style, stateless callback */
typedef void (*php_output_handler_func_t)(char *output, uint output_len, char **handled_output, uint *handled_output_len, int mode TSRMLS_DC);
typedef void (*php_output_handler_func_t)(char *output, size_t output_len, char **handled_output, size_t *handled_output_len, int mode TSRMLS_DC);
/* new-style, opaque context callback */
typedef int (*php_output_handler_context_func_t)(void **handler_context, php_output_context *output_context);
/* output handler context dtor */
@ -206,8 +206,8 @@ PHPAPI void php_output_set_implicit_flush(int flush TSRMLS_DC);
PHPAPI const char *php_output_get_start_filename(TSRMLS_D);
PHPAPI int php_output_get_start_lineno(TSRMLS_D);
PHPAPI int php_output_write_unbuffered(const char *str, size_t len TSRMLS_DC);
PHPAPI int php_output_write(const char *str, size_t len TSRMLS_DC);
PHPAPI size_t php_output_write_unbuffered(const char *str, size_t len TSRMLS_DC);
PHPAPI size_t php_output_write(const char *str, size_t len TSRMLS_DC);
PHPAPI int php_output_flush(TSRMLS_D);
PHPAPI void php_output_flush_all(TSRMLS_D);