Better fix bug #75540 Segfault with libzip 1.3.1

- only 1.3.1 is affected
- fix use after free
This commit is contained in:
Remi Collet 2017-11-20 09:42:20 +01:00
parent 8832c46607
commit 702ef27364

View file

@ -1513,9 +1513,10 @@ static ZIPARCHIVE_METHOD(close)
ze_obj = Z_ZIP_P(self);
if ((err = zip_close(intern))) {
#if LIBZIP_VERSION_MAJOR == 1 && LIBZIP_VERSION_MINOR == 3 && LIBZIP_VERSION_MICRO == 1
php_error_docref(NULL, E_WARNING, "%s", "zip_close have failed");
#else
php_error_docref(NULL, E_WARNING, "%s", zip_strerror(intern));
#if LIBZIP_VERSION_MAJOR < 1 || (LIBZIP_VERSION_MAJOR == 1 && LIBZIP_VERSION_MINOR < 3) || (LIBZIP_VERSION_MAJOR == 1 && LIBZIP_VERSION_MINOR == 3 && LIBZIP_VERSION_MICRO < 1)
/* Fix memory leak in libzip < 1.3.1 */
zip_discard(intern);
#endif
}