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

Reply via email to