mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-29 01:13:08 +00:00
lang/php70 and lang/php71: Parse multiple [PATH=] and [HOST=] sections properly
Adding a patch to fix bug #74738 in PHP 7.0 and 7.1: https://bugs.php.net/bug.php?id=74738 Reported by: Philip Jocks <pj@netzkommune.de> MFH: 2017Q2
This commit is contained in:
parent
a7cd6dc3ae
commit
8e9dc2a0d1
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=443708
@ -3,7 +3,7 @@
|
||||
|
||||
PORTNAME= php70
|
||||
PORTVERSION= 7.0.20
|
||||
PORTREVISION?= 0
|
||||
PORTREVISION?= 1
|
||||
CATEGORIES?= lang devel www
|
||||
MASTER_SITES= PHP/distributions
|
||||
DISTNAME= php-${PORTVERSION}
|
||||
|
31
lang/php70/files/patch-main_php__ini.c
Normal file
31
lang/php70/files/patch-main_php__ini.c
Normal file
@ -0,0 +1,31 @@
|
||||
--- main/php_ini.c.orig 2017-06-14 13:27:29 UTC
|
||||
+++ main/php_ini.c
|
||||
@@ -280,7 +280,7 @@ static void php_ini_parser_cb(zval *arg1
|
||||
size_t key_len;
|
||||
|
||||
/* PATH sections */
|
||||
- if (zend_string_equals_literal_ci(Z_STR_P(arg1), "PATH")) {
|
||||
+ if (!zend_binary_strncasecmp(Z_STRVAL_P(arg1), Z_STRLEN_P(arg1), "PATH", sizeof("PATH") - 1, sizeof("PATH") - 1)) {
|
||||
key = Z_STRVAL_P(arg1);
|
||||
key = key + sizeof("PATH") - 1;
|
||||
key_len = Z_STRLEN_P(arg1) - sizeof("PATH") + 1;
|
||||
@@ -291,7 +291,7 @@ static void php_ini_parser_cb(zval *arg1
|
||||
TRANSLATE_SLASHES_LOWER(key);
|
||||
|
||||
/* HOST sections */
|
||||
- } else if (zend_string_equals_literal_ci(Z_STR_P(arg1), "HOST")) {
|
||||
+ } else if (!zend_binary_strncasecmp(Z_STRVAL_P(arg1), Z_STRLEN_P(arg1), "HOST", sizeof("HOST") - 1, sizeof("HOST") - 1)) {
|
||||
key = Z_STRVAL_P(arg1);
|
||||
key = key + sizeof("HOST") - 1;
|
||||
key_len = Z_STRLEN_P(arg1) - sizeof("HOST") + 1;
|
||||
@@ -328,7 +328,9 @@ static void php_ini_parser_cb(zval *arg1
|
||||
zend_hash_init(Z_ARRVAL(section_arr), 8, NULL, (dtor_func_t) config_zval_dtor, 1);
|
||||
entry = zend_hash_str_update(target_hash, key, key_len, §ion_arr);
|
||||
}
|
||||
- active_ini_hash = Z_ARRVAL_P(entry);
|
||||
+ if (Z_TYPE_P(entry) == IS_ARRAY) {
|
||||
+ active_ini_hash = Z_ARRVAL_P(entry);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
break;
|
@ -3,7 +3,7 @@
|
||||
|
||||
PORTNAME= php71
|
||||
PORTVERSION= 7.1.6
|
||||
PORTREVISION?= 0
|
||||
PORTREVISION?= 1
|
||||
CATEGORIES?= lang devel www
|
||||
MASTER_SITES= PHP/distributions
|
||||
DISTNAME= php-${PORTVERSION}
|
||||
|
40
lang/php71/files/patch-main_php__ini.c
Normal file
40
lang/php71/files/patch-main_php__ini.c
Normal file
@ -0,0 +1,40 @@
|
||||
--- main/php_ini.c.orig 2017-06-14 13:23:49 UTC
|
||||
+++ main/php_ini.c
|
||||
@@ -280,7 +280,7 @@ static void php_ini_parser_cb(zval *arg1
|
||||
size_t key_len;
|
||||
|
||||
/* PATH sections */
|
||||
- if (zend_string_equals_literal_ci(Z_STR_P(arg1), "PATH")) {
|
||||
+ if (!zend_binary_strncasecmp(Z_STRVAL_P(arg1), Z_STRLEN_P(arg1), "PATH", sizeof("PATH") - 1, sizeof("PATH") - 1)) {
|
||||
key = Z_STRVAL_P(arg1);
|
||||
key = key + sizeof("PATH") - 1;
|
||||
key_len = Z_STRLEN_P(arg1) - sizeof("PATH") + 1;
|
||||
@@ -291,7 +291,7 @@ static void php_ini_parser_cb(zval *arg1
|
||||
TRANSLATE_SLASHES_LOWER(key);
|
||||
|
||||
/* HOST sections */
|
||||
- } else if (zend_string_equals_literal_ci(Z_STR_P(arg1), "HOST")) {
|
||||
+ } else if (!zend_binary_strncasecmp(Z_STRVAL_P(arg1), Z_STRLEN_P(arg1), "HOST", sizeof("HOST") - 1, sizeof("HOST") - 1)) {
|
||||
key = Z_STRVAL_P(arg1);
|
||||
key = key + sizeof("HOST") - 1;
|
||||
key_len = Z_STRLEN_P(arg1) - sizeof("HOST") + 1;
|
||||
@@ -328,7 +328,9 @@ static void php_ini_parser_cb(zval *arg1
|
||||
zend_hash_init(Z_ARRVAL(section_arr), 8, NULL, (dtor_func_t) config_zval_dtor, 1);
|
||||
entry = zend_hash_str_update(target_hash, key, key_len, §ion_arr);
|
||||
}
|
||||
- active_ini_hash = Z_ARRVAL_P(entry);
|
||||
+ if (Z_TYPE_P(entry) == IS_ARRAY) {
|
||||
+ active_ini_hash = Z_ARRVAL_P(entry);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -638,7 +640,7 @@ int php_init_config(void)
|
||||
}
|
||||
if (!debpath[0]) {
|
||||
/* empty string means default builtin value
|
||||
- to allow "/foo/php.d:" or ":/foo/php.d" */
|
||||
+ to allow "/foo/phd.d:" or ":/foo/php.d" */
|
||||
debpath = PHP_CONFIG_FILE_SCAN_DIR;
|
||||
}
|
||||
lenpath = (int)strlen(debpath);
|
Loading…
Reference in New Issue
Block a user