From 0c9fcac7677c6e9847ce495e9834872d4c825876 Mon Sep 17 00:00:00 2001 From: Greg Beaver Date: Mon, 14 Apr 2008 18:03:57 +0000 Subject: [PATCH] remove redundant check for file existence, add another unlink edgecase test --- ext/phar/stream.c | 10 +++------- ext/phar/tests/fopen_edgecases.phpt | 3 +++ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/ext/phar/stream.c b/ext/phar/stream.c index 08da8911e4..50a7968eba 100644 --- a/ext/phar/stream.c +++ b/ext/phar/stream.c @@ -701,8 +701,10 @@ static int phar_wrapper_unlink(php_stream_wrapper *wrapper, char *url, int optio if (FAILURE == phar_get_entry_data(&idata, resource->host, strlen(resource->host), internal_file, strlen(internal_file), "r", 0, &error TSRMLS_CC)) { /* constraints of fp refcount were not met */ if (error) { - php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, error); + php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "unlink of \"%s\" failed: %s", url, error); efree(error); + } else { + php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "unlink of \"%s\" failed, file does not exist", url); } efree(internal_file); php_url_free(resource); @@ -711,12 +713,6 @@ static int phar_wrapper_unlink(php_stream_wrapper *wrapper, char *url, int optio if (error) { efree(error); } - if (!idata) { - php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "phar error: \"%s\" is not a file in phar \"%s\", cannot unlink", internal_file, resource->host); - efree(internal_file); - php_url_free(resource); - return 0; - } if (idata->internal_file->fp_refcount > 1) { /* more than just our fp resource is open for this file */ php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "phar error: \"%s\" in phar \"%s\", has open file pointers, cannot unlink", internal_file, resource->host); diff --git a/ext/phar/tests/fopen_edgecases.phpt b/ext/phar/tests/fopen_edgecases.phpt index a868b71059..7117e79b4e 100644 --- a/ext/phar/tests/fopen_edgecases.phpt +++ b/ext/phar/tests/fopen_edgecases.phpt @@ -53,6 +53,7 @@ unlink($pname2 . '/hi'); unlink('phar://'); unlink('phar://foo.phar'); unlink('phar://test.phar/' . basename(__FILE__)); +unlink($pname . '/oops'); ?> ===DONE=== @@ -101,4 +102,6 @@ Warning: unlink(): phar error: unlink failed in %sfopen_edgecases.php on line %d Warning: unlink(): phar error: "phar://test.phar/fopen_edgecases.php" cannot be unlinked, phar is extracted in plain map in %sfopen_edgecases.php on line %d +Warning: unlink(): unlink of "phar://%sfopen_edgecases.phar.php/oops" failed, file does not exist in %sfopen_edgecases.php on line %d + ===DONE=== \ No newline at end of file -- 2.40.0