From: Anatol Belski Date: Sat, 22 Jul 2017 20:33:18 +0000 (+0200) Subject: Mitigation for ssize_t issue in 22a5f554a8766d63fd2c2ce91a90ebacb13c0f6a X-Git-Tag: php-7.3.0alpha1~1838 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e0825ec60fc4e4aa3f026c832c26be51b23b4f09;p=php Mitigation for ssize_t issue in 22a5f554a8766d63fd2c2ce91a90ebacb13c0f6a and some more --- diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter.c b/ext/mbstring/libmbfl/mbfl/mbfilter.c index d76c54ecf7..a58acca9d4 100644 --- a/ext/mbstring/libmbfl/mbfl/mbfilter.c +++ b/ext/mbstring/libmbfl/mbfl/mbfilter.c @@ -823,7 +823,7 @@ size_t mbfl_strpos( mbfl_string *haystack, mbfl_string *needle, - long offset, + ssize_t offset, int reverse) { size_t result; diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter.h b/ext/mbstring/libmbfl/mbfl/mbfilter.h index d376e7d46d..0a27d3a265 100644 --- a/ext/mbstring/libmbfl/mbfl/mbfilter.h +++ b/ext/mbstring/libmbfl/mbfl/mbfilter.h @@ -98,6 +98,15 @@ #include "mbfl_convert.h" #include "mbfl_ident.h" +/* Prefer local fix, otherwise need to include too much. */ +#ifndef ssize_t +#if defined(_WIN64) +#define ssize_t __int64 +#elif defined(_WIN32) +#define ssize_t __int32 +#endif +#endif + /* * version information */ @@ -191,7 +200,7 @@ mbfl_oddlen(mbfl_string *string); * strpos */ MBFLAPI extern size_t -mbfl_strpos(mbfl_string *haystack, mbfl_string *needle, long offset, int reverse); +mbfl_strpos(mbfl_string *haystack, mbfl_string *needle, ssize_t offset, int reverse); /* diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index 17122dd614..afc6870802 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -2435,7 +2435,7 @@ PHP_FUNCTION(mb_strrpos) char *enc_name = NULL; size_t enc_name_len; zval *zoffset = NULL; - long offset = 0, str_flg, n; + zend_long offset = 0, str_flg, n; char *enc_name2 = NULL; int enc_name_len2; @@ -4811,7 +4811,7 @@ static inline mbfl_buffer_converter *php_mb_init_convd(const mbfl_encoding *enco static inline int php_mb_check_encoding_impl(mbfl_buffer_converter *convd, const char *input, size_t length, const mbfl_encoding *encoding) { mbfl_string string, result, *ret = NULL; - long illegalchars = 0; + size_t illegalchars = 0; /* initialize string */ mbfl_string_init_set(&string, mbfl_no_language_neutral, encoding); diff --git a/ext/mbstring/mbstring.h b/ext/mbstring/mbstring.h index 49a1434bd8..7cbff02ba3 100644 --- a/ext/mbstring/mbstring.h +++ b/ext/mbstring/mbstring.h @@ -186,7 +186,7 @@ ZEND_BEGIN_MODULE_GLOBALS(mbstring) long func_overload; zend_bool encoding_translation; long strict_detection; - long illegalchars; + size_t illegalchars; mbfl_buffer_converter *outconv; void *http_output_conv_mimetypes; #if HAVE_MBREGEX