cellog Sun May 18 23:11:24 2008 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/phar phar_object.c Log: fix segfault, test coming shortly http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar_object.c?r1=1.266.2.4&r2=1.266.2.5&diff_format=u Index: php-src/ext/phar/phar_object.c diff -u php-src/ext/phar/phar_object.c:1.266.2.4 php-src/ext/phar/phar_object.c:1.266.2.5 --- php-src/ext/phar/phar_object.c:1.266.2.4 Sat May 17 20:07:22 2008 +++ php-src/ext/phar/phar_object.c Sun May 18 23:11:24 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: phar_object.c,v 1.266.2.4 2008/05/17 20:07:22 cellog Exp $ */ +/* $Id: phar_object.c,v 1.266.2.5 2008/05/18 23:11:24 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