Skip to content

Commit f777ce3

Browse files
authored
ext/phar: use zend_string* for alias argument of phar_open_parsed_phar() (#21977)
1 parent 8d0777e commit f777ce3

1 file changed

Lines changed: 17 additions & 15 deletions

File tree

ext/phar/phar.c

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -484,8 +484,15 @@ ZEND_ATTRIBUTE_NONNULL void phar_entry_remove(phar_entry_data *idata, char **err
484484
/**
485485
* Open an already loaded phar
486486
*/
487-
static zend_result phar_open_parsed_phar(char *fname, size_t fname_len, const char *alias, size_t alias_len, bool is_data, uint32_t options, phar_archive_data** pphar, char **error) /* {{{ */
488-
{
487+
static zend_result phar_open_parsed_phar(
488+
char *fname,
489+
size_t fname_len,
490+
/* copyable & hash update */ zend_string *alias,
491+
bool is_data,
492+
uint32_t options,
493+
phar_archive_data** pphar,
494+
char **error
495+
) {
489496
#ifdef PHP_WIN32
490497
char *save_fname;
491498
ALLOCA_FLAG(fname_use_heap)
@@ -503,7 +510,9 @@ static zend_result phar_open_parsed_phar(char *fname, size_t fname_len, const ch
503510
phar_unixify_path_separators(fname, fname_len);
504511
}
505512
#endif
506-
phar_archive_data *phar = phar_get_archive(fname, fname_len, alias, alias_len, error);
513+
const char *alias_cstr = alias ? ZSTR_VAL(alias) : NULL;
514+
size_t alias_len = alias ? ZSTR_LEN(alias) : 0;
515+
phar_archive_data *phar = phar_get_archive(fname, fname_len, alias_cstr, alias_len, error);
507516
/* logic is as follows:
508517
- If no alias was passed in, then it can match either and be valid
509518
- If an explicit alias was requested, ensure the filename passed in matches the phar's filename.
@@ -552,7 +561,6 @@ static zend_result phar_open_parsed_phar(char *fname, size_t fname_len, const ch
552561
return FAILURE;
553562
}
554563
}
555-
/* }}}*/
556564

557565
/**
558566
* Attempt to serialize the data.
@@ -1333,10 +1341,8 @@ ZEND_ATTRIBUTE_NONNULL_ARGS(1, 5, 6) zend_result phar_open_or_create_filename(
13331341
}
13341342
return FAILURE;
13351343
}
1336-
check_file:;
1337-
const char *alias_cstr = alias ? ZSTR_VAL(alias) : NULL;
1338-
size_t alias_len = alias ? ZSTR_LEN(alias) : 0;
1339-
if (phar_open_parsed_phar(ZSTR_VAL(fname), ZSTR_LEN(fname), alias_cstr, alias_len, is_data, options, test, &my_error) == SUCCESS) {
1344+
check_file:
1345+
if (phar_open_parsed_phar(ZSTR_VAL(fname), ZSTR_LEN(fname), alias, is_data, options, test, &my_error) == SUCCESS) {
13401346
*pphar = *test;
13411347

13421348
if ((*test)->is_data && !(*test)->is_tar && !(*test)->is_zip) {
@@ -1538,9 +1544,7 @@ zend_result phar_open_from_filename(
15381544
is_data = true;
15391545
}
15401546

1541-
const char *alias_cstr = alias ? ZSTR_VAL(alias) : NULL;
1542-
size_t alias_len = alias ? ZSTR_LEN(alias) : 0;
1543-
if (phar_open_parsed_phar(fname, fname_len, alias_cstr, alias_len, is_data, options, pphar, error) == SUCCESS) {
1547+
if (phar_open_parsed_phar(fname, fname_len, alias, is_data, options, pphar, error) == SUCCESS) {
15441548
return SUCCESS;
15451549
} else if (error && *error) {
15461550
return FAILURE;
@@ -2278,7 +2282,7 @@ zend_string* phar_split_fname(const char *filename, size_t filename_len, zend_st
22782282
* Invoked when a user calls Phar::mapPhar() from within an executing .phar
22792283
* to set up its manifest directly
22802284
*/
2281-
ZEND_ATTRIBUTE_NONNULL_ARGS(2) zend_result phar_open_executed_filename(/* copyable & hash update */ zend_string *alias, char **error) /* {{{ */
2285+
ZEND_ATTRIBUTE_NONNULL_ARGS(2) zend_result phar_open_executed_filename(/* copyable & hash update */ zend_string *alias, char **error) /* {{{ */
22822286
{
22832287
*error = NULL;
22842288

@@ -2289,9 +2293,7 @@ ZEND_ATTRIBUTE_NONNULL_ARGS(2) zend_result phar_open_executed_filename(/* copyab
22892293
return FAILURE;
22902294
}
22912295

2292-
const char *alias_cstr = alias ? ZSTR_VAL(alias) : NULL;
2293-
size_t alias_len = alias ? ZSTR_LEN(alias) : 0;
2294-
if (phar_open_parsed_phar(ZSTR_VAL(fname), ZSTR_LEN(fname), alias_cstr, alias_len, false, REPORT_ERRORS, NULL, NULL) == SUCCESS) {
2296+
if (phar_open_parsed_phar(ZSTR_VAL(fname), ZSTR_LEN(fname), alias, false, REPORT_ERRORS, NULL, NULL) == SUCCESS) {
22952297
return SUCCESS;
22962298
}
22972299

0 commit comments

Comments
 (0)