com php-src: Mitigation for ssize_t issue in 22a5 f554a8766d63fd2c2ce91a90ebacb1 3c0f6a: ext/mbstring/libmbfl/mbfl/mbfilter.c ext/
mbstring/libmbfl/mbfl/mbfilter.h ext/mbstring/mbstring.c ext/mbstring/mbstring.h
| From: | Anatol Belski | Date: | Sat, 22 Jul 2017 20:34:16 +0000 |
| Subject: | com php-src: Mitigation for ssize_t issue in 22a5 f554a8766d63fd2c2ce91a90ebacb1 3c0f6a: ext/mbstring/libmbfl/mbfl/mbfilter.c ext/ mbstring/libmbfl/mbfl/mbfilter.h ext/mbstring/mbstring.c ext/mbstring/mbstring.h |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-98722@lists.php.net to get a copy of this message | ||
Commit: e0825ec60fc4e4aa3f026c832c26be51b23b4f09
Author: Anatol Belski <ab@php.net> Sat, 22 Jul 2017 22:33:18 +0200
Parents: 934cfa35f8c3946b812739e4ed5afe0f456610eb
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=e0825ec60fc4e4aa3f026c832c26be51b23b4f09
Log:
Mitigation for ssize_t issue in 22a5f554a8766d63fd2c2ce91a90ebacb13c0f6a
and some more
Changed paths:
M ext/mbstring/libmbfl/mbfl/mbfilter.c
M ext/mbstring/libmbfl/mbfl/mbfilter.h
M ext/mbstring/mbstring.c
M ext/mbstring/mbstring.h
Diff:
diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter.c b/ext/mbstring/libmbfl/mbfl/mbfilter.c
index d76c54e..a58acca 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 d376e7d..0a27d3a 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 17122dd..afc6870 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 49a1434..7cbff02 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