diff options
author | Anatoliy Belsky <ab@php.net> | 2012-06-05 23:22:27 +0200 |
---|---|---|
committer | Anatoliy Belsky <ab@php.net> | 2012-06-07 21:01:32 +0200 |
commit | b8cdc731b840cf3b8fd49d34ede7485180326a9c (patch) | |
tree | b92e3489400fb337c7055d1c3e51a39c39c24efa /ext/zip/lib/zip_open.c | |
parent | a37e84e549669dbcca0b94a69a5409591eb0c6bb (diff) | |
download | php-git-b8cdc731b840cf3b8fd49d34ede7485180326a9c.tar.gz |
brought the fix for #47667 back
Diffstat (limited to 'ext/zip/lib/zip_open.c')
-rw-r--r-- | ext/zip/lib/zip_open.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ext/zip/lib/zip_open.c b/ext/zip/lib/zip_open.c index 5aba34f67a..2f56881b0a 100644 --- a/ext/zip/lib/zip_open.c +++ b/ext/zip/lib/zip_open.c @@ -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: |