Browse Source

Fixed bug #64452 Zip PHPTs crash intermittently

PHP-5.3.24
Anatol Belski 13 years ago
parent
commit
bb935ff8dc
  1. 3
      NEWS
  2. 6
      ext/zip/lib/zip_close.c
  3. 12
      ext/zip/lib/zip_dirent.c

3
NEWS

@ -17,6 +17,9 @@ PHP NEWS
- DateTime
. Fixed bug #62852 (Unserialize Invalid Date causes crash). (Anatol)
- Zip:
. Bug #64452 (Zip crash intermittently). (Anatol)
14 Mar 2013, PHP 5.3.23

6
ext/zip/lib/zip_close.c

@ -88,6 +88,9 @@ zip_close(struct zip *za)
if (za == NULL)
return -1;
if (za->zp == NULL)
return -1;
if (!_zip_changed(za, &survivors)) {
_zip_free(za);
return 0;
@ -164,9 +167,10 @@ zip_close(struct zip *za)
for (j=0; j<survivors; j++) {
i = filelist[j].idx;
_zip_dirent_init(&de);
/* create new local directory entry */
if (ZIP_ENTRY_DATA_CHANGED(za->entry+i) || new_torrentzip) {
_zip_dirent_init(&de);
if (zip_get_archive_flag(za, ZIP_AFL_TORRENT, 0))
_zip_dirent_torrent_normalize(&de);

12
ext/zip/lib/zip_dirent.c

@ -157,11 +157,17 @@ _zip_cdir_write(struct zip_cdir *cd, FILE *fp, struct zip_error *error)
void
_zip_dirent_finalize(struct zip_dirent *zde)
{
free(zde->filename);
if (zde->filename_len > 0) {
free(zde->filename);
}
zde->filename = NULL;
free(zde->extrafield);
if (zde->extrafield_len > 0) {
free(zde->extrafield);
}
zde->extrafield = NULL;
free(zde->comment);
if (zde->comment_len > 0) {
free(zde->comment);
}
zde->comment = NULL;
}

Loading…
Cancel
Save