Browse Source

Merge pull request #5501 from pprindeville/issue/5488

php7: fix issue 5488
lilik-openwrt-22.03
Michael Heimpold 7 years ago
committed by GitHub
parent
commit
74eecfebcc
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 43 additions and 1 deletions
  1. +1
    -1
      lang/php7/Makefile
  2. +42
    -0
      lang/php7/patches/1012-php_iconv_string-null-out-pointer

+ 1
- 1
lang/php7/Makefile View File

@ -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>


+ 42
- 0
lang/php7/patches/1012-php_iconv_string-null-out-pointer View File

@ -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;
}
}

Loading…
Cancel
Save