]> granicus.if.org Git - php/commitdiff
brought the fix for #47667 back
authorAnatoliy Belsky <ab@php.net>
Tue, 5 Jun 2012 21:22:27 +0000 (23:22 +0200)
committerAnatoliy Belsky <ab@php.net>
Thu, 7 Jun 2012 19:01:32 +0000 (21:01 +0200)
ext/zip/lib/zip_open.c

index 5aba34f67aadb3699782f2e67a5e5cf26a904d4d..2f56881b0a9d2ceeba4c46cf4f11cd1a2f1d07d4 100644 (file)
@@ -61,10 +61,16 @@ ZIP_EXTERN(struct zip *)
 zip_open(const char *fn, int flags, int *zep)
 {
     FILE *fp;
-    
+
+    if (flags & ZIP_OVERWRITE) {
+       return _zip_allocate_new(fn, zep);
+    }
+
     switch (_zip_file_exists(fn, flags, zep)) {
     case -1:
-       return NULL;
+                       if (!(flags & ZIP_OVERWRITE)) {
+                               return NULL;
+                       }
     case 0:
        return _zip_allocate_new(fn, zep);
     default: