]> granicus.if.org Git - php/commitdiff
Mitigation for ssize_t issue in 22a5f554a8766d63fd2c2ce91a90ebacb13c0f6a
authorAnatol Belski <ab@php.net>
Sat, 22 Jul 2017 20:33:18 +0000 (22:33 +0200)
committerAnatol Belski <ab@php.net>
Sat, 22 Jul 2017 20:34:16 +0000 (22:34 +0200)
and some more

ext/mbstring/libmbfl/mbfl/mbfilter.c
ext/mbstring/libmbfl/mbfl/mbfilter.h
ext/mbstring/mbstring.c
ext/mbstring/mbstring.h

index d76c54ecf748b47bd90d34f344c2e7493f2674c3..a58acca9d42b62c7d1a1e17e11c72437ea268fde 100644 (file)
@@ -823,7 +823,7 @@ size_t
 mbfl_strpos(
     mbfl_string *haystack,
     mbfl_string *needle,
-    long offset,
+    ssize_t offset,
     int reverse)
 {
        size_t result;
index d376e7d46d53cce1aa62c0eb3a47145f7e7123fd..0a27d3a26567c969d7428120fc74f5ff835ef914 100644 (file)
 #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);
 
 
 /*
index 17122dd6147f7bcc8ba9d78cddf519ff2bc564d9..afc6870802d83bad234997e054a6251820250458 100644 (file)
@@ -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);
index 49a1434bd85b71e2c888d281e628d478374d4792..7cbff02ba38b2cab04600f8c707bdb114f2273d2 100644 (file)
@@ -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