Skip to content

Commit b41aa38

Browse files
committed
ext/phar: avoid redundant allocation by using zend_string for alias
1 parent 98b1601 commit b41aa38

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

ext/phar/zip.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,8 @@ zend_result phar_parse_zipfile(php_stream *fp, const char *fname, size_t fname_l
630630
php_stream_filter_append(&fp->readfilters, filter);
631631

632632
actual_alias = php_stream_copy_to_mem(fp, entry.uncompressed_filesize, 0);
633-
if (!actual_alias || !entry.uncompressed_filesize) {
633+
entry.uncompressed_filesize = ZSTR_LEN(actual_alias);
634+
if (!entry.uncompressed_filesize) {
634635
php_stream_filter_remove(filter, 1);
635636
zend_string_release_ex(entry.filename, entry.is_persistent);
636637
PHAR_ZIP_FAIL("unable to read in alias, truncated");
@@ -649,7 +650,8 @@ zend_result phar_parse_zipfile(php_stream *fp, const char *fname, size_t fname_l
649650

650651
php_stream_filter_append(&fp->readfilters, filter);
651652
actual_alias = php_stream_copy_to_mem(fp, entry.uncompressed_filesize, 0);
652-
if (!actual_alias || !entry.uncompressed_filesize) {
653+
entry.uncompressed_filesize = ZSTR_LEN(actual_alias);
654+
if (!entry.uncompressed_filesize) {
653655
php_stream_filter_remove(filter, 1);
654656
zend_string_release_ex(entry.filename, entry.is_persistent);
655657
PHAR_ZIP_FAIL("unable to read in alias, truncated");
@@ -659,7 +661,8 @@ zend_result phar_parse_zipfile(php_stream *fp, const char *fname, size_t fname_l
659661
php_stream_filter_remove(filter, 1);
660662
} else {
661663
actual_alias = php_stream_copy_to_mem(fp, entry.uncompressed_filesize, 0);
662-
if (!actual_alias || !entry.uncompressed_filesize) {
664+
entry.uncompressed_filesize = ZSTR_LEN(actual_alias);
665+
if (!entry.uncompressed_filesize) {
663666
zend_string_release_ex(entry.filename, entry.is_persistent);
664667
PHAR_ZIP_FAIL("unable to read in alias, truncated");
665668
}

0 commit comments

Comments
 (0)