]> granicus.if.org Git - php/commitdiff
fix invalid variable access
authorGreg Beaver <cellog@php.net>
Mon, 14 Apr 2008 22:39:27 +0000 (22:39 +0000)
committerGreg Beaver <cellog@php.net>
Mon, 14 Apr 2008 22:39:27 +0000 (22:39 +0000)
ext/phar/stream.c

index 03fe31b71aab7fc046b66ccb685d372f8a2233e2..a13159ac77e2915ea9919eaded280b45c9ed218d 100644 (file)
@@ -746,6 +746,13 @@ static int phar_wrapper_rename(php_stream_wrapper *wrapper, char *url_from, char
                return 0;
        }
 
+
+       if (SUCCESS != phar_get_archive(&pfrom, resource_from->host, strlen(resource_from->host), NULL, 0, &error TSRMLS_CC)) {
+               pfrom = NULL;
+               if (error) {
+                       efree(error);
+               }
+       }
        if (PHAR_G(readonly) && (!pfrom || !pfrom->is_data)) {
                php_url_free(resource_from);
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "phar error: write operations disabled by phar.readonly INI setting");
@@ -764,10 +771,10 @@ static int phar_wrapper_rename(php_stream_wrapper *wrapper, char *url_from, char
                return 0;
        }
 
-       if (SUCCESS != phar_get_archive(&pfrom, resource_from->host, strlen(resource_from->host), NULL, 0, &error TSRMLS_CC)) {
-               pfrom = NULL;
-       }
        if (SUCCESS != phar_get_archive(&pto, resource_to->host, strlen(resource_to->host), NULL, 0, &error TSRMLS_CC)) {
+               if (error) {
+                       efree(error);
+               }
                pto = NULL;
        }