cvs: php-src /ext/phar phar_object.c

From: Date: Tue, 20 May 2008 04:09:41 +0000
Subject: cvs: php-src /ext/phar phar_object.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-50065@lists.php.net to get a copy of this message
cellog Tue May 20 04:09:41 2008 UTC Modified files: /php-src/ext/phar phar_object.c Log: MFB relax rename requirements http://cvs.php.net/viewvc.cgi/php-src/ext/phar/phar_object.c?r1=1.274&r2=1.275&diff_format=u Index: php-src/ext/phar/phar_object.c diff -u php-src/ext/phar/phar_object.c:1.274 php-src/ext/phar/phar_object.c:1.275 --- php-src/ext/phar/phar_object.c:1.274 Mon May 19 19:05:41 2008 +++ php-src/ext/phar/phar_object.c Tue May 20 04:09:41 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: phar_object.c,v 1.274 2008/05/19 19:05:41 sfox Exp $ */ +/* $Id: phar_object.c,v 1.275 2008/05/20 04:09:41 cellog Exp $ */ #include "phar_internal.h" #include "func_interceptors.h" @@ -1844,6 +1844,7 @@ char *error; const char *pcr_error; int ext_len = ext ? strlen(ext) : 0; + phar_archive_data **pphar; if (!ext) { if (phar->is_zip) { @@ -1914,12 +1915,18 @@ efree(basepath); efree(newname); - if (zend_hash_exists(&(PHAR_GLOBALS->phar_fname_map), newpath, phar->fname_len)) { + if (SUCCESS == zend_hash_exists(&(PHAR_GLOBALS->phar_fname_map), newpath, phar->fname_len, (void **) &pphar)) { + if (*pphar == phar) { + if (!zend_hash_num_elements(&phar->manifest)) { + goto its_ok; + } + } efree(oldpath); zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC, "Unable to add newly converted phar \"%s\" to the list of phars, a phar with that name already exists", phar->fname); return NULL; } +its_ok: if (!phar->is_data) { if (SUCCESS != phar_detect_phar_fname_ext(newpath, phar->fname_len, (const char **) &(phar->ext), &(phar->ext_len), 1, 1, 1 TSRMLS_CC)) { efree(oldpath);

« previous php.cvs (#50065) next »