Merge pull request #8518 from neheb/i
[feed/packages.git] / lang / php7 / patches / 1012-php_iconv_string-null-out-pointer.patch
1 commit 3763c8f1645983b5abc37c60597e1ecc1bf89019
2 Author: Philip Prindeville <philipp@redfish-solutions.com>
3 Date: Thu Jan 25 14:18:00 2018 -0700
4
5 Always free out_buf in php_iconv_string()
6
7 diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c
8 index 4289242..807bb14 100644
9 --- a/ext/iconv/iconv.c
10 +++ b/ext/iconv/iconv.c
11 @@ -699,6 +699,7 @@ PHP_ICONV_API php_iconv_err_t php_iconv_string(const char *in_p, size_t in_len,
12 iconv_close(cd);
13
14 if (result == (size_t)(-1)) {
15 + zend_string_free(out_buf);
16 switch (errno) {
17 case EINVAL:
18 retval = PHP_ICONV_ERR_ILLEGAL_CHAR;
19 @@ -715,7 +716,6 @@ PHP_ICONV_API php_iconv_err_t php_iconv_string(const char *in_p, size_t in_len,
20
21 default:
22 /* other error */
23 - zend_string_free(out_buf);
24 return PHP_ICONV_ERR_UNKNOWN;
25 }
26 }
27 @@ -988,9 +988,6 @@ static php_iconv_err_t _php_iconv_strpos(size_t *pretval,
28 err = php_iconv_string(ndl, ndl_nbytes, &ndl_buf, GENERIC_SUPERSET_NAME, enc);
29
30 if (err != PHP_ICONV_ERR_SUCCESS) {
31 - if (ndl_buf != NULL) {
32 - zend_string_free(ndl_buf);
33 - }
34 return err;
35 }
36
37 @@ -2494,9 +2491,6 @@ PHP_NAMED_FUNCTION(php_if_iconv)
38 if (err == PHP_ICONV_ERR_SUCCESS && out_buffer != NULL) {
39 RETVAL_STR(out_buffer);
40 } else {
41 - if (out_buffer != NULL) {
42 - zend_string_free(out_buffer);
43 - }
44 RETURN_FALSE;
45 }
46 }