@@ -177,7 +177,7 @@ static zend_result phar_tar_process_metadata(phar_entry_info *entry, php_stream
177
177
178
178
phar_parse_metadata_lazy (metadata , & entry -> metadata_tracker , entry -> uncompressed_filesize , entry -> is_persistent );
179
179
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" )) {
181
181
if (phar_metadata_tracker_has_data (& entry -> phar -> metadata_tracker , entry -> phar -> is_persistent )) {
182
182
efree (metadata );
183
183
return FAILURE ;
@@ -515,7 +515,7 @@ zend_result phar_parse_tarfile(php_stream* fp, char *fname, size_t fname_len, ch
515
515
++ entry .manifest_pos ;
516
516
}
517
517
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" )) {
519
519
if (FAILURE == phar_tar_process_metadata (newentry , fp )) {
520
520
if (error ) {
521
521
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
526
526
}
527
527
}
528
528
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" )) {
530
530
/* found explicit alias */
531
531
if (size > 511 ) {
532
532
if (error ) {
@@ -907,8 +907,8 @@ static int phar_tar_setupmetadata(zval *zv, void *argument) /* {{{ */
907
907
char * * error = i -> error ;
908
908
phar_entry_info * entry = (phar_entry_info * )Z_PTR_P (zv ), * metadata , newentry = {0 };
909
909
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" )) {
912
912
return phar_tar_setmetadata (& entry -> phar -> metadata_tracker , entry , error );
913
913
}
914
914
/* search for the file this metadata entry references */
0 commit comments