diff options
Diffstat (limited to 'ext/zip/php_zip.c')
-rw-r--r-- | ext/zip/php_zip.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/ext/zip/php_zip.c b/ext/zip/php_zip.c index 883b6f6d40..21182068d1 100644 --- a/ext/zip/php_zip.c +++ b/ext/zip/php_zip.c @@ -1473,20 +1473,21 @@ static ZIPARCHIVE_METHOD(open) ze_obj->filename = NULL; } -#if LIBZIP_VERSION_MAJOR > 1 || LIBZIP_VERSION_MAJOR == 1 && LIBZIP_VERSION_MINOR >= 6 - /* reduce BC break introduce in libzip 1.6.0 - "Do not accept empty files as valid zip archives any longer" */ - /* open for write without option to empty the archive */ +#ifdef ZIP_RDONLY if ((flags & (ZIP_TRUNCATE | ZIP_RDONLY)) == 0) { +#else + if ((flags & ZIP_TRUNCATE) == 0) { +#endif zend_stat_t st; /* exists and is empty */ if (VCWD_STAT(resolved_path, &st) == 0 && st.st_size == 0) { + /* reduce BC break introduced in libzip 1.6.0 + "Do not accept empty files as valid zip archives any longer" */ flags |= ZIP_TRUNCATE; } } -#endif intern = zip_open(resolved_path, flags, &err); if (!intern || err) { |