mirror of
https://github.com/php/php-src.git
synced 2025-08-18 23:18:56 +02:00
Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3: Fixed bug #64452 Zip PHPTs crash intermittently
This commit is contained in:
commit
06a526be3e
2 changed files with 14 additions and 4 deletions
|
@ -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);
|
||||
|
|
|
@ -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…
Add table
Add a link
Reference in a new issue