fat Tue, 30 Nov 2010 19:37:10 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=305859
Log: - Fixed bug #53412 (segfault when using -y) Bug: http://bugs.php.net/53412 (Assigned) php-fpm children constantly exiting (immediately) Changed paths: U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.c U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c U php/php-src/trunk/sapi/fpm/fpm/fpm.c U php/php-src/trunk/sapi/fpm/fpm/fpm_conf.c Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2010-11-30 17:15:38 UTC (rev 305858) +++ php/php-src/branches/PHP_5_3/NEWS 2010-11-30 19:37:10 UTC (rev 305859) @@ -272,6 +272,7 @@ returns int(0)). (slugonamission at gmail dot com) - PHP-FPM SAPI: + . Fixed bug #53412 (segfault when using -y). (fat) . Fixed inconsistent backlog default value (-1) in FPM on many systems. (fat) . Fixed bug #52501 (libevent made FPM crashed when forking -- libevent has been removed). (fat) Modified: php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.c =================================================================== --- php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.c 2010-11-30 17:15:38 UTC (rev 305858) +++ php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.c 2010-11-30 19:37:10 UTC (rev 305859) @@ -27,7 +27,9 @@ { fpm_globals.argc = argc; fpm_globals.argv = argv; - fpm_globals.config = config; + if (config && *config) { + fpm_globals.config = strdup(config); + } fpm_globals.prefix = prefix; if (0 > fpm_php_init_main() || 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-11-30 17:15:38 UTC (rev 305858) +++ php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c 2010-11-30 19:37:10 UTC (rev 305859) @@ -794,7 +794,7 @@ free(fpm_global_config.error_log); fpm_global_config.pid_file = 0; fpm_global_config.error_log = 0; - efree(fpm_globals.config); + free(fpm_globals.config); } /* }}} */ @@ -1179,13 +1179,22 @@ } if (fpm_globals.config == NULL) { + char *tmp; if (fpm_globals.prefix == NULL) { - spprintf(&fpm_globals.config, 0, "%s/php-fpm.conf", PHP_SYSCONFDIR); + spprintf(&tmp, 0, "%s/php-fpm.conf", PHP_SYSCONFDIR); } else { - spprintf(&fpm_globals.config, 0, "%s/etc/php-fpm.conf", fpm_globals.prefix); + spprintf(&tmp, 0, "%s/etc/php-fpm.conf", fpm_globals.prefix); } + if (!tmp) { + zlog(ZLOG_SYSERROR, "spprintf() failed (tmp for fpm_globals.config)"); + return -1; + } + + fpm_globals.config = strdup(tmp); + efree(tmp); + if (!fpm_globals.config) { zlog(ZLOG_SYSERROR, "spprintf() failed (fpm_globals.config)"); return -1; Modified: php/php-src/trunk/sapi/fpm/fpm/fpm.c =================================================================== --- php/php-src/trunk/sapi/fpm/fpm/fpm.c 2010-11-30 17:15:38 UTC (rev 305858) +++ php/php-src/trunk/sapi/fpm/fpm/fpm.c 2010-11-30 19:37:10 UTC (rev 305859) @@ -27,7 +27,9 @@ { fpm_globals.argc = argc; fpm_globals.argv = argv; - fpm_globals.config = config; + if (config && *config) { + fpm_globals.config = strdup(config); + } fpm_globals.prefix = prefix; if (0 > fpm_php_init_main() || Modified: php/php-src/trunk/sapi/fpm/fpm/fpm_conf.c =================================================================== --- php/php-src/trunk/sapi/fpm/fpm/fpm_conf.c 2010-11-30 17:15:38 UTC (rev 305858) +++ php/php-src/trunk/sapi/fpm/fpm/fpm_conf.c 2010-11-30 19:37:10 UTC (rev 305859) @@ -794,7 +794,7 @@ free(fpm_global_config.error_log); fpm_global_config.pid_file = 0; fpm_global_config.error_log = 0; - efree(fpm_globals.config); + free(fpm_globals.config); } /* }}} */ @@ -1179,13 +1179,22 @@ } if (fpm_globals.config == NULL) { + char *tmp; if (fpm_globals.prefix == NULL) { - spprintf(&fpm_globals.config, 0, "%s/php-fpm.conf", PHP_SYSCONFDIR); + spprintf(&tmp, 0, "%s/php-fpm.conf", PHP_SYSCONFDIR); } else { - spprintf(&fpm_globals.config, 0, "%s/etc/php-fpm.conf", fpm_globals.prefix); + spprintf(&tmp, 0, "%s/etc/php-fpm.conf", fpm_globals.prefix); } + if (!tmp) { + zlog(ZLOG_SYSERROR, "spprintf() failed (tmp for fpm_globals.config)"); + return -1; + } + + fpm_globals.config = strdup(tmp); + efree(tmp); + if (!fpm_globals.config) { zlog(ZLOG_SYSERROR, "spprintf() failed (fpm_globals.config)"); return -1;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php