mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4: phar: Fix memory leaks when creating temp file fails when applying zip signature
This commit is contained in:
@@ -1222,7 +1222,9 @@ static int phar_zip_applysignature(phar_archive_data *phar, struct _phar_zip_pas
|
||||
entry.fp_type = PHAR_MOD;
|
||||
entry.is_modified = 1;
|
||||
if (entry.fp == NULL) {
|
||||
efree(signature);
|
||||
spprintf(pass->error, 0, "phar error: unable to create temporary file for signature");
|
||||
php_stream_close(newfile);
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
@@ -1440,11 +1442,12 @@ fperror:
|
||||
|
||||
phar_metadata_tracker_try_ensure_has_serialized_data(&phar->metadata_tracker, phar->is_persistent);
|
||||
if (temperr) {
|
||||
temperror:
|
||||
if (error) {
|
||||
spprintf(error, 4096, "phar zip flush of \"%s\" failed: %s", phar->fname, temperr);
|
||||
}
|
||||
efree(temperr);
|
||||
temperror:
|
||||
notemperror:
|
||||
php_stream_close(pass.centralfp);
|
||||
nocentralerror:
|
||||
php_stream_close(pass.filefp);
|
||||
@@ -1472,7 +1475,7 @@ nocentralerror:
|
||||
if (error) {
|
||||
spprintf(error, 4096, "phar zip flush of \"%s\" failed: unable to write central-directory", phar->fname);
|
||||
}
|
||||
goto temperror;
|
||||
goto notemperror;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user