svn: /php/php-src/ branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c branches/PHP_5_3/sapi/fpm/fpm/fpm_main.c trunk/sapi/fpm/fpm/fpm_conf.c
trunk/sapi/fpm/fpm/fpm_main.c
| From: | Jérôme Loyet | Date: | Fri, 20 Aug 2010 08:33:57 +0000 |
| Subject: | svn: /php/php-src/ branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c branches/PHP_5_3/sapi/fpm/fpm/fpm_main.c trunk/sapi/fpm/fpm/fpm_conf.c trunk/sapi/fpm/fpm/fpm_main.c |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-63337@lists.php.net to get a copy of this message | ||
fat Fri, 20 Aug 2010 08:33:57 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=302531
Log:
Fix #52609 (INI scanner did not use ZEND_INI_SCANNER_NORMAL)
Bug: http://bugs.php.net/52609 (Assigned) session.save_path
in php-fpm does not handle ";" in extended format correctly
Changed paths:
U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c
U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_main.c
U php/php-src/trunk/sapi/fpm/fpm/fpm_conf.c
U php/php-src/trunk/sapi/fpm/fpm/fpm_main.c
Modified: php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c
===================================================================
--- php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c 2010-08-20 06:46:00 UTC (rev 302530)
+++ php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c 2010-08-20 08:33:57 UTC (rev 302531)
@@ -114,8 +114,8 @@
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 @@
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 @@
}
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 @@
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);
Modified: php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_main.c
===================================================================
--- php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_main.c 2010-08-20 06:46:00 UTC (rev 302530)
+++ php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_main.c 2010-08-20 08:33:57 UTC (rev 302531)
@@ -1372,7 +1372,7 @@
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);
}
@@ -1381,7 +1381,7 @@
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);
}
}
@@ -1406,7 +1406,7 @@
return;
}
- if (!value || strlen(value) < 1) {
+ if (!value) {
fprintf(stderr, "Passing INI directive through FastCGI: empty value for key
'%s'\n", key);
return;
}
Modified: php/php-src/trunk/sapi/fpm/fpm/fpm_conf.c
===================================================================
--- php/php-src/trunk/sapi/fpm/fpm/fpm_conf.c 2010-08-20 06:46:00 UTC (rev 302530)
+++ php/php-src/trunk/sapi/fpm/fpm/fpm_conf.c 2010-08-20 08:33:57 UTC (rev 302531)
@@ -114,8 +114,8 @@
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 @@
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 @@
}
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 @@
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);
Modified: php/php-src/trunk/sapi/fpm/fpm/fpm_main.c
===================================================================
--- php/php-src/trunk/sapi/fpm/fpm/fpm_main.c 2010-08-20 06:46:00 UTC (rev 302530)
+++ php/php-src/trunk/sapi/fpm/fpm/fpm_main.c 2010-08-20 08:33:57 UTC (rev 302531)
@@ -1370,7 +1370,7 @@
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 @@
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 @@
return;
}
- if (!value || strlen(value) < 1) {
+ if (!value) {
fprintf(stderr, "Passing INI directive through FastCGI: empty value for key
'%s'\n", key);
return;
}