mirror of
https://github.com/php/php-src.git
synced 2024-09-22 10:27:25 +00:00
Fix #52609 (INI scanner did not use ZEND_INI_SCANNER_NORMAL)
This commit is contained in:
parent
e9735b92a4
commit
99a4506787
@ -114,8 +114,8 @@ static int fpm_conf_is_dir(char *path) /* {{{ */
|
||||
static char *fpm_conf_set_boolean(zval *value, void **config, intptr_t offset) /* {{{ */
|
||||
{
|
||||
char *val = Z_STRVAL_P(value);
|
||||
long value_y = !strcasecmp(val, "yes") || !strcmp(val, "1") || !strcasecmp(val, "on") || !strcasecmp(val, "true");
|
||||
long value_n = !strcasecmp(val, "no") || !strcmp(val, "0") || !strcasecmp(val, "off") || !strcasecmp(val, "false");
|
||||
long value_y = !strcasecmp(val, "1");
|
||||
long value_n = !strcasecmp(val, "");
|
||||
|
||||
if (!value_y && !value_n) {
|
||||
return "invalid boolean value";
|
||||
@ -846,7 +846,7 @@ static void fpm_conf_ini_parser_array(zval *name, zval *key, zval *value, void *
|
||||
char *err = NULL;
|
||||
void *config;
|
||||
|
||||
if (!Z_STRVAL_P(key) || !Z_STRVAL_P(value) || !*Z_STRVAL_P(key) || !*Z_STRVAL_P(value)) {
|
||||
if (!Z_STRVAL_P(key) || !Z_STRVAL_P(value) || !*Z_STRVAL_P(key)) {
|
||||
zlog(ZLOG_STUFF, ZLOG_ERROR, "[%s:%d] Mispell array ?", ini_filename, ini_lineno);
|
||||
*error = 1;
|
||||
return;
|
||||
@ -858,14 +858,29 @@ static void fpm_conf_ini_parser_array(zval *name, zval *key, zval *value, void *
|
||||
}
|
||||
|
||||
if (!strcmp("env", Z_STRVAL_P(name))) {
|
||||
if (!*Z_STRVAL_P(value)) {
|
||||
zlog(ZLOG_STUFF, ZLOG_ERROR, "[%s:%d] Mispell array ? (empty value)", ini_filename, ini_lineno);
|
||||
*error = 1;
|
||||
return;
|
||||
}
|
||||
config = (char *)current_wp->config + offsetof(struct fpm_worker_pool_config_s, env);
|
||||
err = fpm_conf_set_array(key, value, &config, 0);
|
||||
|
||||
} else if (!strcmp("php_value", Z_STRVAL_P(name))) {
|
||||
if (!*Z_STRVAL_P(value)) {
|
||||
zlog(ZLOG_STUFF, ZLOG_ERROR, "[%s:%d] Mispell array ? (empty value)", ini_filename, ini_lineno);
|
||||
*error = 1;
|
||||
return;
|
||||
}
|
||||
config = (char *)current_wp->config + offsetof(struct fpm_worker_pool_config_s, php_values);
|
||||
err = fpm_conf_set_array(key, value, &config, 0);
|
||||
|
||||
} else if (!strcmp("php_admin_value", Z_STRVAL_P(name))) {
|
||||
if (!*Z_STRVAL_P(value)) {
|
||||
zlog(ZLOG_STUFF, ZLOG_ERROR, "[%s:%d] Mispell array ? (empty value)", ini_filename, ini_lineno);
|
||||
*error = 1;
|
||||
return;
|
||||
}
|
||||
config = (char *)current_wp->config + offsetof(struct fpm_worker_pool_config_s, php_admin_values);
|
||||
err = fpm_conf_set_array(key, value, &config, 0);
|
||||
|
||||
@ -953,7 +968,7 @@ int fpm_conf_load_ini_file(char *filename TSRMLS_DC) /* {{{ */
|
||||
buf[n++] = '\n';
|
||||
ini_lineno++;
|
||||
ini_filename = filename;
|
||||
tmp = zend_parse_ini_string(buf, 1, ZEND_INI_SCANNER_RAW, (zend_ini_parser_cb_t)fpm_conf_ini_parser, &error TSRMLS_CC);
|
||||
tmp = zend_parse_ini_string(buf, 1, ZEND_INI_SCANNER_NORMAL, (zend_ini_parser_cb_t)fpm_conf_ini_parser, &error TSRMLS_CC);
|
||||
ini_filename = filename;
|
||||
if (error || tmp == FAILURE) {
|
||||
if (ini_include) free(ini_include);
|
||||
|
@ -1370,7 +1370,7 @@ static void init_request_info(TSRMLS_D)
|
||||
int mode = ZEND_INI_USER;
|
||||
char *tmp;
|
||||
spprintf(&tmp, 0, "%s\n", ini);
|
||||
zend_parse_ini_string(tmp, 1, ZEND_INI_SCANNER_RAW, (zend_ini_parser_cb_t)fastcgi_ini_parser, &mode TSRMLS_CC);
|
||||
zend_parse_ini_string(tmp, 1, ZEND_INI_SCANNER_NORMAL, (zend_ini_parser_cb_t)fastcgi_ini_parser, &mode TSRMLS_CC);
|
||||
efree(tmp);
|
||||
}
|
||||
|
||||
@ -1379,7 +1379,7 @@ static void init_request_info(TSRMLS_D)
|
||||
int mode = ZEND_INI_SYSTEM;
|
||||
char *tmp;
|
||||
spprintf(&tmp, 0, "%s\n", ini);
|
||||
zend_parse_ini_string(tmp, 1, ZEND_INI_SCANNER_RAW, (zend_ini_parser_cb_t)fastcgi_ini_parser, &mode TSRMLS_CC);
|
||||
zend_parse_ini_string(tmp, 1, ZEND_INI_SCANNER_NORMAL, (zend_ini_parser_cb_t)fastcgi_ini_parser, &mode TSRMLS_CC);
|
||||
efree(tmp);
|
||||
}
|
||||
}
|
||||
@ -1404,7 +1404,7 @@ static void fastcgi_ini_parser(zval *arg1, zval *arg2, zval *arg3, int callback_
|
||||
return;
|
||||
}
|
||||
|
||||
if (!value || strlen(value) < 1) {
|
||||
if (!value) {
|
||||
fprintf(stderr, "Passing INI directive through FastCGI: empty value for key '%s'\n", key);
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user