mirror of
https://github.com/php/php-src.git
synced 2026-03-25 16:52:18 +01:00
Fix Bug #79296 ZipArchive::open fails on empty file
This commit is contained in:
@@ -1480,6 +1480,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 */
|
||||
if ((flags & (ZIP_TRUNCATE | ZIP_RDONLY)) == 0) {
|
||||
zend_stat_t st;
|
||||
|
||||
/* exists and is empty */
|
||||
if (VCWD_STAT(resolved_path, &st) == 0 && st.st_size == 0) {
|
||||
flags |= ZIP_TRUNCATE;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
intern = zip_open(resolved_path, flags, &err);
|
||||
if (!intern || err) {
|
||||
efree(resolved_path);
|
||||
|
||||
Reference in New Issue
Block a user