mirror of
https://github.com/php/php-src.git
synced 2026-04-29 03:03:26 +02:00
remove redundant check for file existence, add another unlink edgecase test
This commit is contained in:
+3
-7
@@ -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);
|
||||
|
||||
@@ -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===
|
||||
Reference in New Issue
Block a user