aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Heimpold <mhei@heimpold.de>2018-01-25 21:08:48 +0100
committerGitHub <noreply@github.com>2018-01-25 21:08:48 +0100
commit74eecfebcc3acabd9f5a68b3d0291289ef28c3c8 (patch)
tree2bfb250b3b5e3efb16316e8644a1b528e6d8a671
parent5dd0a570e6941a0dcc51aafed767141276851956 (diff)
parent6230ab4437aa5e5436f50c9f0a83f5722ae14157 (diff)
Merge pull request #5501 from pprindeville/issue/5488
php7: fix issue 5488
-rw-r--r--lang/php7/Makefile2
-rw-r--r--lang/php7/patches/1012-php_iconv_string-null-out-pointer42
2 files changed, 43 insertions, 1 deletions
diff --git a/lang/php7/Makefile b/lang/php7/Makefile
index 48d98891f..f1f781fe4 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:=1
+PKG_RELEASE:=2
PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
diff --git a/lang/php7/patches/1012-php_iconv_string-null-out-pointer b/lang/php7/patches/1012-php_iconv_string-null-out-pointer
new file mode 100644
index 000000000..5f71b7d70
--- /dev/null
+++ b/lang/php7/patches/1012-php_iconv_string-null-out-pointer
@@ -0,0 +1,42 @@
+commit 8b6882d95dfe9096a22052bbff0c134b10932d20
+Author: Philip Prindeville <philipp@redfish-solutions.com>
+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;
+ }
+ }