@@ -177,7 +177,7 @@ static zend_result phar_tar_process_metadata(phar_entry_info *entry, php_stream
177177
178178 phar_parse_metadata_lazy (metadata , & entry -> metadata_tracker , entry -> uncompressed_filesize , entry -> is_persistent );
179179
180- if (ZSTR_LEN (entry -> filename ) == sizeof ( ".phar/.metadata.bin" ) - 1 && ! memcmp ( ZSTR_VAL ( entry -> filename ) , ".phar/.metadata.bin" , sizeof ( ".phar/.metadata.bin" ) - 1 )) {
180+ if (zend_string_equals_literal (entry -> filename , ".phar/.metadata.bin" )) {
181181 if (phar_metadata_tracker_has_data (& entry -> phar -> metadata_tracker , entry -> phar -> is_persistent )) {
182182 efree (metadata );
183183 return FAILURE ;
@@ -515,7 +515,7 @@ zend_result phar_parse_tarfile(php_stream* fp, char *fname, size_t fname_len, ch
515515 ++ entry .manifest_pos ;
516516 }
517517
518- if (ZSTR_LEN (entry .filename ) >= sizeof ( ".phar/.metadata" ) - 1 && ! memcmp ( ZSTR_VAL ( entry . filename ) , ".phar/.metadata" , sizeof ( ".phar/.metadata" ) - 1 )) {
518+ if (zend_string_starts_with_literal (entry .filename , ".phar/.metadata" )) {
519519 if (FAILURE == phar_tar_process_metadata (newentry , fp )) {
520520 if (error ) {
521521 spprintf (error , 4096 , "phar error: tar-based phar \"%s\" has invalid metadata in magic file \"%s\"" , fname , ZSTR_VAL (entry .filename ));
@@ -526,7 +526,7 @@ zend_result phar_parse_tarfile(php_stream* fp, char *fname, size_t fname_len, ch
526526 }
527527 }
528528
529- if (!actual_alias && ZSTR_LEN (entry .filename ) == sizeof ( ".phar/alias.txt" ) - 1 && ! strncmp ( ZSTR_VAL ( entry . filename ) , ".phar/alias.txt" , sizeof ( ".phar/alias.txt" ) - 1 )) {
529+ if (!actual_alias && zend_string_equals_literal (entry .filename , ".phar/alias.txt" )) {
530530 /* found explicit alias */
531531 if (size > 511 ) {
532532 if (error ) {
@@ -907,8 +907,8 @@ static int phar_tar_setupmetadata(zval *zv, void *argument) /* {{{ */
907907 char * * error = i -> error ;
908908 phar_entry_info * entry = (phar_entry_info * )Z_PTR_P (zv ), * metadata , newentry = {0 };
909909
910- if (ZSTR_LEN (entry -> filename ) >= sizeof ( ".phar/.metadata" ) && ! memcmp ( ZSTR_VAL ( entry -> filename ) , ".phar/.metadata" , sizeof ( ".phar/.metadata" ) - 1 )) {
911- if (ZSTR_LEN (entry -> filename ) == sizeof ( ".phar/.metadata.bin" ) - 1 && ! memcmp ( ZSTR_VAL ( entry -> filename ) , ".phar/.metadata.bin" , sizeof ( ".phar/.metadata.bin" ) - 1 )) {
910+ if (zend_string_starts_with_literal (entry -> filename , ".phar/.metadata" )) {
911+ if (zend_string_equals_literal (entry -> filename , ".phar/.metadata.bin" )) {
912912 return phar_tar_setmetadata (& entry -> phar -> metadata_tracker , entry , error );
913913 }
914914 /* search for the file this metadata entry references */
0 commit comments