From: Philip Prindeville Date: Thu, 25 Jan 2018 22:19:30 +0000 (-0700) Subject: php7: redux of fix for issue #5488 X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=e1a4178de140986574bb58755a2e7ab3f0bc749b;p=feed%2Fpackages.git php7: redux of fix for issue #5488 Upstream was a little premature on asking for a change and not vetting it. Here is the currently proposed fix. Signed-off-by: Philip Prindeville --- diff --git a/lang/php7/Makefile b/lang/php7/Makefile index f1f781fe41..8b6f6fb50d 100644 --- a/lang/php7/Makefile +++ b/lang/php7/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=php PKG_VERSION:=7.2.1 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_MAINTAINER:=Michael Heimpold diff --git a/lang/php7/patches/1012-php_iconv_string-null-out-pointer b/lang/php7/patches/1012-php_iconv_string-null-out-pointer deleted file mode 100644 index 5f71b7d707..0000000000 --- a/lang/php7/patches/1012-php_iconv_string-null-out-pointer +++ /dev/null @@ -1,42 +0,0 @@ -commit 8b6882d95dfe9096a22052bbff0c134b10932d20 -Author: Philip Prindeville -Date: Wed Jan 24 18:47:19 2018 -0700 - - Be consistent in clearing out in php_iconv_string() - - Also, don't bother checking returned point in error case since it - will always be NULL (and not require free()ing, obviously). - -diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c -index 35dafd4..bc7f3aa 100644 ---- a/ext/iconv/iconv.c -+++ b/ext/iconv/iconv.c -@@ -559,6 +559,8 @@ PHP_ICONV_API php_iconv_err_t php_iconv_string(const char *in_p, size_t in_len, - size_t result; - zend_string *ret, *out_buffer; - -+ *out = NULL; -+ - /* - This is not the right way to get output size... - This is not space efficient for large text. -@@ -984,9 +986,6 @@ static php_iconv_err_t _php_iconv_strpos(size_t *pretval, - err = php_iconv_string(ndl, ndl_nbytes, &ndl_buf, GENERIC_SUPERSET_NAME, enc); - - if (err != PHP_ICONV_ERR_SUCCESS) { -- if (ndl_buf != NULL) { -- zend_string_free(ndl_buf); -- } - return err; - } - -@@ -2463,9 +2462,6 @@ PHP_NAMED_FUNCTION(php_if_iconv) - if (err == PHP_ICONV_ERR_SUCCESS && out_buffer != NULL) { - RETVAL_STR(out_buffer); - } else { -- if (out_buffer != NULL) { -- zend_string_free(out_buffer); -- } - RETURN_FALSE; - } - } diff --git a/lang/php7/patches/1012-php_iconv_string-null-out-pointer.patch b/lang/php7/patches/1012-php_iconv_string-null-out-pointer.patch new file mode 100644 index 0000000000..6dfbe51ef9 --- /dev/null +++ b/lang/php7/patches/1012-php_iconv_string-null-out-pointer.patch @@ -0,0 +1,69 @@ +commit 31e53f07c26e5ac75ec2c2d99497439323dbdaf7 +Author: Philip Prindeville +Date: Wed Jan 24 18:47:19 2018 -0700 + + Be consistent in clearing out in php_iconv_string() + + Also, don't bother checking returned point in error case since it + will always be NULL (and not require free()ing, obviously). + +diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c +index 35dafd4..4289242 100644 +--- a/ext/iconv/iconv.c ++++ b/ext/iconv/iconv.c +@@ -559,6 +559,8 @@ PHP_ICONV_API php_iconv_err_t php_iconv_string(const char *in_p, size_t in_len, + size_t result; + zend_string *ret, *out_buffer; + ++ *out = NULL; ++ + /* + This is not the right way to get output size... + This is not space efficient for large text. + +commit 3763c8f1645983b5abc37c60597e1ecc1bf89019 +Author: Philip Prindeville +Date: Thu Jan 25 14:18:00 2018 -0700 + + Always free out_buf in php_iconv_string() + +diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c +index 4289242..807bb14 100644 +--- a/ext/iconv/iconv.c ++++ b/ext/iconv/iconv.c +@@ -697,6 +697,7 @@ PHP_ICONV_API php_iconv_err_t php_iconv_string(const char *in_p, size_t in_len, + iconv_close(cd); + + if (result == (size_t)(-1)) { ++ zend_string_free(out_buf); + switch (errno) { + case EINVAL: + retval = PHP_ICONV_ERR_ILLEGAL_CHAR; +@@ -713,7 +714,6 @@ PHP_ICONV_API php_iconv_err_t php_iconv_string(const char *in_p, size_t in_len, + + default: + /* other error */ +- zend_string_free(out_buf); + return PHP_ICONV_ERR_UNKNOWN; + } + } +@@ -986,9 +986,6 @@ static php_iconv_err_t _php_iconv_strpos(size_t *pretval, + err = php_iconv_string(ndl, ndl_nbytes, &ndl_buf, GENERIC_SUPERSET_NAME, enc); + + if (err != PHP_ICONV_ERR_SUCCESS) { +- if (ndl_buf != NULL) { +- zend_string_free(ndl_buf); +- } + return err; + } + +@@ -2465,9 +2462,6 @@ PHP_NAMED_FUNCTION(php_if_iconv) + if (err == PHP_ICONV_ERR_SUCCESS && out_buffer != NULL) { + RETVAL_STR(out_buffer); + } else { +- if (out_buffer != NULL) { +- zend_string_free(out_buffer); +- } + RETURN_FALSE; + } + }