From 9c90e16e188d5fd8cca8cd77fd8c65d29308428e Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Mon, 20 Oct 2025 20:34:04 +0200 Subject: [PATCH] phar: Avoid an error goto in phar_zip_flush() (#20233) --- ext/phar/zip.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/ext/phar/zip.c b/ext/phar/zip.c index 5f025d75e34..5abbc49d3c2 100644 --- a/ext/phar/zip.c +++ b/ext/phar/zip.c @@ -1392,8 +1392,8 @@ fperror: zend_hash_apply_with_argument(&phar->manifest, phar_zip_changed_apply, (void *) &pass); phar_metadata_tracker_try_ensure_has_serialized_data(&phar->metadata_tracker, phar->is_persistent); - if (pass_error) { -has_pass_error: + if (pass_error + || FAILURE == phar_zip_applysignature(phar, &pass)) { spprintf(error, 4096, "phar zip flush of \"%s\" failed: %s", phar->fname, pass_error); efree(pass_error); nopasserror: @@ -1406,11 +1406,6 @@ nocentralerror: return; } - if (FAILURE == phar_zip_applysignature(phar, &pass)) { - ZEND_ASSERT(pass_error != NULL); - goto has_pass_error; - } - /* save zip */ cdir_size = php_stream_tell(pass.centralfp); cdir_offset = php_stream_tell(pass.filefp);