cellog          Sun May 18 23:12:47 2008 UTC

  Modified files:              
    /php-src/ext/phar   cgidebug phar_object.c 
  Log:
  MFB fix segfault
  
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/cgidebug?r1=1.3&r2=1.4&diff_format=u
Index: php-src/ext/phar/cgidebug
diff -u php-src/ext/phar/cgidebug:1.3 php-src/ext/phar/cgidebug:1.4
--- php-src/ext/phar/cgidebug:1.3       Thu May  8 00:49:36 2008
+++ php-src/ext/phar/cgidebug   Sun May 18 23:12:47 2008
@@ -1,11 +1,11 @@
 #!/bin/sh
-export SCRIPT_NAME=/frontcontroller34.php
-export PATH_INFO=/start/index.php
-export 
SCRIPT_FILENAME=/home/cellog/workspace/php5/ext/phar/tests/frontcontroller34.php
-export 
PATH_TRANSLATED=/home/cellog/workspace/php5/ext/phar/tests/frontcontroller34.php
+export SCRIPT_NAME=/front.phar.php
+export PATH_INFO=
+export 
SCRIPT_FILENAME=/home/cellog/workspace/php5/ext/phar/tests/front.phar.php
+export 
PATH_TRANSLATED=/home/cellog/workspace/php5/ext/phar/tests/front.phar.php
 export REDIRECT_STATUS=1
 export REQUEST_METHOD=GET
-export REQUEST_URI=/frontcontroller34.php/start/index.php
+export REQUEST_URI=/front.phar.php
 cd /home/cellog/workspace/php5/
 ddd sapi/cgi/php-cgi &
 cd /home/cellog/workspace/php5/ext/phar
http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar_object.c?r1=1.271&r2=1.272&diff_format=u
Index: php-src/ext/phar/phar_object.c
diff -u php-src/ext/phar/phar_object.c:1.271 
php-src/ext/phar/phar_object.c:1.272
--- php-src/ext/phar/phar_object.c:1.271        Sat May 17 20:07:38 2008
+++ php-src/ext/phar/phar_object.c      Sun May 18 23:12:47 2008
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: phar_object.c,v 1.271 2008/05/17 20:07:38 cellog Exp $ */
+/* $Id: phar_object.c,v 1.272 2008/05/18 23:12:47 cellog Exp $ */
 
 #include "phar_internal.h"
 #include "func_interceptors.h"
@@ -445,7 +445,7 @@
  */
 PHP_METHOD(Phar, mount)
 {
-       char *fname, *arch, *entry, *path, *actual;
+       char *fname, *arch = NULL, *entry = NULL, *path, *actual;
        int fname_len, arch_len, entry_len, path_len, actual_len;
        phar_archive_data **pphar;
 
@@ -467,7 +467,9 @@
 carry_on2:
                if (SUCCESS != zend_hash_find(&(PHAR_GLOBALS->phar_fname_map), 
arch, arch_len, (void **)&pphar)) {
                        zend_throw_exception_ex(phar_ce_PharException, 0 
TSRMLS_CC, "%s is not a phar archive, cannot mount", arch);
-                       efree(arch);
+                       if (arch) {
+                               efree(arch);
+                       }
                        return;
                }
 carry_on:
@@ -476,13 +478,17 @@
                        if (path && path == entry) {
                                efree(entry);
                        }
-                       efree(arch);
+                       if (arch) {
+                               efree(arch);
+                       }
                        return;
                }
-               if (path && path == entry) {
+               if (entry && path && path == entry) {
                        efree(entry);
                }
-               efree(arch);
+               if (arch) {
+                       efree(arch);
+               }
                return;
        } else if (SUCCESS == zend_hash_find(&(PHAR_GLOBALS->phar_fname_map), 
fname, fname_len, (void **)&pphar)) {
                goto carry_on;



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to