Skip to content

Commit 0379bbd

Browse files
committed
Use zend_string for phar alias
1 parent f97d8f2 commit 0379bbd

File tree

9 files changed

+187
-210
lines changed

9 files changed

+187
-210
lines changed

ext/phar/dirstream.c

+5-5
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ php_stream *phar_wrapper_open_dir(php_stream_wrapper *wrapper, const char *path,
280280

281281
phar_request_initialize();
282282

283-
if (FAILURE == phar_get_archive(&phar, ZSTR_VAL(resource->host), ZSTR_LEN(resource->host), NULL, 0, &error)) {
283+
if (FAILURE == phar_get_archive(&phar, ZSTR_VAL(resource->host), ZSTR_LEN(resource->host), NULL, &error)) {
284284
if (error) {
285285
php_stream_wrapper_log_error(wrapper, options, "%s", error);
286286
efree(error);
@@ -359,7 +359,7 @@ int phar_wrapper_mkdir(php_stream_wrapper *wrapper, const char *url_from, int mo
359359
return 0;
360360
}
361361

362-
if (FAILURE == phar_get_archive(&phar, arch, arch_len, NULL, 0, NULL)) {
362+
if (FAILURE == phar_get_archive(&phar, arch, arch_len, NULL, NULL)) {
363363
phar = NULL;
364364
}
365365

@@ -388,7 +388,7 @@ int phar_wrapper_mkdir(php_stream_wrapper *wrapper, const char *url_from, int mo
388388
return 0;
389389
}
390390

391-
if (FAILURE == phar_get_archive(&phar, ZSTR_VAL(resource->host), ZSTR_LEN(resource->host), NULL, 0, &error)) {
391+
if (FAILURE == phar_get_archive(&phar, ZSTR_VAL(resource->host), ZSTR_LEN(resource->host), NULL, &error)) {
392392
php_stream_wrapper_log_error(wrapper, options, "phar error: cannot create directory \"%s\" in phar \"%s\", error retrieving phar information: %s", ZSTR_VAL(resource->path) + 1, ZSTR_VAL(resource->host), error);
393393
efree(error);
394394
php_url_free(resource);
@@ -487,7 +487,7 @@ int phar_wrapper_rmdir(php_stream_wrapper *wrapper, const char *url, int options
487487
return 0;
488488
}
489489

490-
if (FAILURE == phar_get_archive(&phar, arch, arch_len, NULL, 0, NULL)) {
490+
if (FAILURE == phar_get_archive(&phar, arch, arch_len, NULL, NULL)) {
491491
phar = NULL;
492492
}
493493

@@ -516,7 +516,7 @@ int phar_wrapper_rmdir(php_stream_wrapper *wrapper, const char *url, int options
516516
return 0;
517517
}
518518

519-
if (FAILURE == phar_get_archive(&phar, ZSTR_VAL(resource->host), ZSTR_LEN(resource->host), NULL, 0, &error)) {
519+
if (FAILURE == phar_get_archive(&phar, ZSTR_VAL(resource->host), ZSTR_LEN(resource->host), NULL, &error)) {
520520
php_stream_wrapper_log_error(wrapper, options, "phar error: cannot remove directory \"%s\" in phar \"%s\", error retrieving phar information: %s", ZSTR_VAL(resource->path)+1, ZSTR_VAL(resource->host), error);
521521
efree(error);
522522
php_url_free(resource);

ext/phar/func_interceptors.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ static zend_string* phar_get_name_for_relative_paths(zend_string *filename, bool
109109
/* fopen within phar, if :// is not in the url, then prepend phar://<archive>/ */
110110
/* retrieving a file defaults to within the current directory, so use this if possible */
111111
phar_archive_data *phar;
112-
if (FAILURE == phar_get_archive(&phar, arch, arch_len, NULL, 0, NULL)) {
112+
if (FAILURE == phar_get_archive(&phar, arch, arch_len, NULL, NULL)) {
113113
efree(arch);
114114
return NULL;
115115
}
@@ -515,7 +515,7 @@ static void phar_file_stat(const char *filename, size_t filename_length, int typ
515515
entry = estrndup(filename, filename_length);
516516
/* fopen within phar, if :// is not in the url, then prepend phar://<archive>/ */
517517
entry_len = filename_length;
518-
if (FAILURE == phar_get_archive(&phar, arch, arch_len, NULL, 0, NULL)) {
518+
if (FAILURE == phar_get_archive(&phar, arch, arch_len, NULL, NULL)) {
519519
efree(arch);
520520
efree(entry);
521521
goto skip_phar;
@@ -759,7 +759,7 @@ PHP_FUNCTION(phar_is_file) /* {{{ */
759759
/* fopen within phar, if :// is not in the url, then prepend phar://<archive>/ */
760760
entry_len = filename_len;
761761
/* retrieving a file within the current directory, so use this if possible */
762-
if (SUCCESS == phar_get_archive(&phar, arch, arch_len, NULL, 0, NULL)) {
762+
if (SUCCESS == phar_get_archive(&phar, arch, arch_len, NULL, NULL)) {
763763
phar_entry_info *etemp;
764764

765765
entry = phar_fix_filepath(estrndup(entry, entry_len), &entry_len, 1);
@@ -825,7 +825,7 @@ PHP_FUNCTION(phar_is_link) /* {{{ */
825825
/* fopen within phar, if :// is not in the url, then prepend phar://<archive>/ */
826826
entry_len = filename_len;
827827
/* retrieving a file within the current directory, so use this if possible */
828-
if (SUCCESS == phar_get_archive(&phar, arch, arch_len, NULL, 0, NULL)) {
828+
if (SUCCESS == phar_get_archive(&phar, arch, arch_len, NULL, NULL)) {
829829
phar_entry_info *etemp;
830830

831831
entry = phar_fix_filepath(estrndup(entry, entry_len), &entry_len, 1);

ext/phar/phar.c

+36-35
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ static void phar_split_cache_list(void) /* {{{ */
133133
len = strlen(key);
134134
}
135135

136-
if (SUCCESS == phar_open_from_filename(key, len, NULL, 0, 0, &phar, NULL)) {
136+
if (SUCCESS == phar_open_from_filename(key, len, NULL, 0, &phar, NULL)) {
137137
phar->phar_pos = i++;
138138
php_stream_close(phar->fp);
139139
phar->fp = NULL;
@@ -194,8 +194,8 @@ PHP_INI_END()
194194
*/
195195
void phar_destroy_phar_data(phar_archive_data *phar) /* {{{ */
196196
{
197-
if (phar->alias && phar->alias != phar->fname) {
198-
pefree(phar->alias, phar->is_persistent);
197+
if (phar->alias) {
198+
zend_string_release_ex(phar->alias, phar->is_persistent);
199199
phar->alias = NULL;
200200
}
201201

@@ -258,7 +258,8 @@ bool phar_archive_delref(phar_archive_data *phar) /* {{{ */
258258
} else if (!phar->refcount) {
259259
/* invalidate phar cache */
260260
PHAR_G(last_phar) = NULL;
261-
PHAR_G(last_phar_name) = PHAR_G(last_alias) = NULL;
261+
PHAR_G(last_phar_name) = NULL;
262+
PHAR_G(last_alias) = NULL;
262263

263264
if (phar->fp && (!(phar->flags & PHAR_FILE_COMPRESSION_MASK) || !phar->alias)) {
264265
/* close open file handle - allows removal or rename of
@@ -486,7 +487,7 @@ void phar_entry_remove(phar_entry_data *idata, char **error) /* {{{ */
486487
/**
487488
* Open an already loaded phar
488489
*/
489-
static zend_result phar_open_parsed_phar(char *fname, size_t fname_len, char *alias, size_t alias_len, bool is_data, uint32_t options, phar_archive_data** pphar, char **error) /* {{{ */
490+
static zend_result phar_open_parsed_phar(char *fname, size_t fname_len, zend_string *alias, bool is_data, uint32_t options, phar_archive_data** pphar, char **error) /* {{{ */
490491
{
491492
phar_archive_data *phar;
492493
#ifdef PHP_WIN32
@@ -506,7 +507,7 @@ static zend_result phar_open_parsed_phar(char *fname, size_t fname_len, char *al
506507
phar_unixify_path_separators(fname, fname_len);
507508
}
508509
#endif
509-
if (SUCCESS == phar_get_archive(&phar, fname, fname_len, alias, alias_len, error)
510+
if (SUCCESS == phar_get_archive(&phar, fname, fname_len, alias, error)
510511
&& ((alias && fname_len == phar->fname_len
511512
&& !strncmp(fname, phar->fname, fname_len)) || !alias)
512513
) {
@@ -1256,9 +1257,11 @@ static zend_result phar_parse_pharfile(php_stream *fp, char *fname, size_t fname
12561257
}
12571258

12581259
mydata->alias = alias ?
1259-
pestrndup(alias, alias_len, mydata->is_persistent) :
1260-
pestrndup(mydata->fname, fname_len, mydata->is_persistent);
1261-
mydata->alias_len = alias ? alias_len : fname_len;
1260+
zend_string_init(alias, alias_len, mydata->is_persistent) :
1261+
zend_string_init(mydata->fname, fname_len, mydata->is_persistent);
1262+
if (mydata->is_persistent) {
1263+
GC_MAKE_PERSISTENT_LOCAL(mydata->alias);
1264+
}
12621265
mydata->sig_flags = sig_flags;
12631266
mydata->fp = fp;
12641267
mydata->sig_len = sig_len;
@@ -1270,7 +1273,7 @@ static zend_result phar_parse_pharfile(php_stream *fp, char *fname, size_t fname
12701273

12711274
mydata->is_temporary_alias = temp_alias;
12721275

1273-
if (!phar_validate_alias(mydata->alias, mydata->alias_len)) {
1276+
if (!phar_validate_alias(ZSTR_VAL(mydata->alias), ZSTR_LEN(mydata->alias))) {
12741277
signature = NULL;
12751278
fp = NULL;
12761279
MAPPHAR_FAIL("Cannot open archive \"%s\", invalid alias");
@@ -1315,7 +1318,7 @@ static zend_result phar_parse_pharfile(php_stream *fp, char *fname, size_t fname
13151318
/**
13161319
* Create or open a phar for writing
13171320
*/
1318-
zend_result phar_open_or_create_filename(char *fname, size_t fname_len, char *alias, size_t alias_len, bool is_data, uint32_t options, phar_archive_data** pphar, char **error) /* {{{ */
1321+
zend_result phar_open_or_create_filename(char *fname, size_t fname_len, zend_string *alias, bool is_data, uint32_t options, phar_archive_data** pphar, char **error) /* {{{ */
13191322
{
13201323
const char *ext_str, *z;
13211324
char *my_error;
@@ -1345,7 +1348,7 @@ zend_result phar_open_or_create_filename(char *fname, size_t fname_len, char *al
13451348
return FAILURE;
13461349
}
13471350
check_file:
1348-
if (phar_open_parsed_phar(fname, fname_len, alias, alias_len, is_data, options, test, &my_error) == SUCCESS) {
1351+
if (phar_open_parsed_phar(fname, fname_len, alias, is_data, options, test, &my_error) == SUCCESS) {
13491352
if (pphar) {
13501353
*pphar = *test;
13511354
}
@@ -1380,15 +1383,15 @@ zend_result phar_open_or_create_filename(char *fname, size_t fname_len, char *al
13801383

13811384
if (ext_len > 3 && (z = memchr(ext_str, 'z', ext_len)) && ((ext_str + ext_len) - z >= 2) && !memcmp(z + 1, "ip", 2)) {
13821385
/* assume zip-based phar */
1383-
return phar_open_or_create_zip(fname, fname_len, alias, alias_len, is_data, options, pphar, error);
1386+
return phar_open_or_create_zip(fname, fname_len, alias ? ZSTR_VAL(alias) : NULL, alias ? ZSTR_LEN(alias) : 0, is_data, options, pphar, error);
13841387
}
13851388

13861389
if (ext_len > 3 && (z = memchr(ext_str, 't', ext_len)) && ((ext_str + ext_len) - z >= 2) && !memcmp(z + 1, "ar", 2)) {
13871390
/* assume tar-based phar */
1388-
return phar_open_or_create_tar(fname, fname_len, alias, alias_len, is_data, options, pphar, error);
1391+
return phar_open_or_create_tar(fname, fname_len, alias ? ZSTR_VAL(alias) : NULL, alias ? ZSTR_LEN(alias) : 0, is_data, options, pphar, error);
13891392
}
13901393

1391-
return phar_create_or_parse_filename(fname, fname_len, alias, alias_len, is_data, options, pphar, error);
1394+
return phar_create_or_parse_filename(fname, fname_len, alias ? ZSTR_VAL(alias) : NULL, alias ? ZSTR_LEN(alias) : 0, is_data, options, pphar, error);
13921395
}
13931396
/* }}} */
13941397

@@ -1515,8 +1518,7 @@ zend_result phar_create_or_parse_filename(char *fname, size_t fname_len, char *a
15151518
}
15161519

15171520
ZEND_ASSERT(!mydata->is_persistent);
1518-
mydata->alias = alias ? estrndup(alias, alias_len) : estrndup(mydata->fname, fname_len);
1519-
mydata->alias_len = alias ? alias_len : fname_len;
1521+
mydata->alias = alias ? zend_string_init(alias, alias_len, false) : zend_string_init(mydata->fname, fname_len, false);
15201522
}
15211523

15221524
if (alias_len && alias) {
@@ -1548,7 +1550,7 @@ zend_result phar_create_or_parse_filename(char *fname, size_t fname_len, char *a
15481550
* that the manifest is proper, then pass it to phar_parse_pharfile(). SUCCESS
15491551
* or FAILURE is returned and pphar is set to a pointer to the phar's manifest
15501552
*/
1551-
zend_result phar_open_from_filename(char *fname, size_t fname_len, char *alias, size_t alias_len, uint32_t options, phar_archive_data** pphar, char **error) /* {{{ */
1553+
zend_result phar_open_from_filename(char *fname, size_t fname_len, zend_string *alias, uint32_t options, phar_archive_data** pphar, char **error) /* {{{ */
15521554
{
15531555
php_stream *fp;
15541556
zend_string *actual;
@@ -1562,7 +1564,7 @@ zend_result phar_open_from_filename(char *fname, size_t fname_len, char *alias,
15621564
is_data = true;
15631565
}
15641566

1565-
if (phar_open_parsed_phar(fname, fname_len, alias, alias_len, is_data, options, pphar, error) == SUCCESS) {
1567+
if (phar_open_parsed_phar(fname, fname_len, alias, is_data, options, pphar, error) == SUCCESS) {
15661568
return SUCCESS;
15671569
} else if (error && *error) {
15681570
return FAILURE;
@@ -1590,7 +1592,7 @@ zend_result phar_open_from_filename(char *fname, size_t fname_len, char *alias,
15901592
fname_len = ZSTR_LEN(actual);
15911593
}
15921594

1593-
zend_result ret = phar_open_from_fp(fp, fname, fname_len, alias, alias_len, options, pphar, error);
1595+
zend_result ret = phar_open_from_fp(fp, fname, fname_len, alias ? ZSTR_VAL(alias) : NULL, alias ? ZSTR_LEN(alias) : 0, options, pphar, error);
15941596

15951597
if (actual) {
15961598
zend_string_release_ex(actual, 0);
@@ -2322,7 +2324,7 @@ zend_result phar_split_fname(const char *filename, size_t filename_len, char **a
23222324
* Invoked when a user calls Phar::mapPhar() from within an executing .phar
23232325
* to set up its manifest directly
23242326
*/
2325-
zend_result phar_open_executed_filename(char *alias, size_t alias_len, char **error) /* {{{ */
2327+
zend_result phar_open_executed_filename(zend_string *alias, char **error) /* {{{ */
23262328
{
23272329
if (error) {
23282330
*error = NULL;
@@ -2337,7 +2339,7 @@ zend_result phar_open_executed_filename(char *alias, size_t alias_len, char **er
23372339
return FAILURE;
23382340
}
23392341

2340-
if (phar_open_parsed_phar(ZSTR_VAL(fname), ZSTR_LEN(fname), alias, alias_len, 0, REPORT_ERRORS, NULL, 0) == SUCCESS) {
2342+
if (phar_open_parsed_phar(ZSTR_VAL(fname), ZSTR_LEN(fname), alias, 0, REPORT_ERRORS, NULL, 0) == SUCCESS) {
23412343
return SUCCESS;
23422344
}
23432345

@@ -2370,7 +2372,7 @@ zend_result phar_open_executed_filename(char *alias, size_t alias_len, char **er
23702372
fname = actual;
23712373
}
23722374

2373-
zend_result ret = phar_open_from_fp(fp, ZSTR_VAL(fname), ZSTR_LEN(fname), alias, alias_len, REPORT_ERRORS, NULL, error);
2375+
zend_result ret = phar_open_from_fp(fp, ZSTR_VAL(fname), ZSTR_LEN(fname), alias ? ZSTR_VAL(alias) : NULL, alias ? ZSTR_LEN(alias) : 0, REPORT_ERRORS, NULL, error);
23742376

23752377
if (actual) {
23762378
zend_string_release_ex(actual, 0);
@@ -2544,7 +2546,7 @@ void phar_flush_ex(phar_archive_data *phar, zend_string *user_stub, bool is_defa
25442546

25452547
phar_entry_info *entry, *newentry;
25462548
size_t halt_offset;
2547-
int restore_alias_len, global_flags = 0;
2549+
int global_flags = 0;
25482550
bool must_close_old_file = false;
25492551
bool has_dirs = false;
25502552
char manifest[18], entry_buffer[24];
@@ -2860,12 +2862,14 @@ void phar_flush_ex(phar_archive_data *phar, zend_string *user_stub, bool is_defa
28602862
* 4: phar metadata length
28612863
* ?: phar metadata
28622864
*/
2863-
restore_alias_len = phar->alias_len;
2865+
size_t written_alias_len;
28642866
if (phar->is_temporary_alias) {
2865-
phar->alias_len = 0;
2867+
written_alias_len = 0;
2868+
} else {
2869+
written_alias_len = ZSTR_LEN(phar->alias); // TODO: null alias?
28662870
}
28672871

2868-
manifest_len = offset + phar->alias_len + sizeof(manifest) + (main_metadata_str.s ? ZSTR_LEN(main_metadata_str.s) : 0);
2872+
manifest_len = offset + written_alias_len + sizeof(manifest) + (main_metadata_str.s ? ZSTR_LEN(main_metadata_str.s) : 0);
28692873
phar_set_32(manifest, manifest_len);
28702874
/* Hack - see bug #65028, add padding byte to the end of the manifest */
28712875
if(manifest[0] == '\r' || manifest[0] == '\n') {
@@ -2882,18 +2886,17 @@ void phar_flush_ex(phar_archive_data *phar, zend_string *user_stub, bool is_defa
28822886
*(manifest + 9) = (unsigned char) (((PHAR_API_VERSION_NODIR) & 0xF0));
28832887
}
28842888
phar_set_32(manifest+10, global_flags);
2885-
phar_set_32(manifest+14, phar->alias_len);
2889+
phar_set_32(manifest+14, written_alias_len);
28862890

28872891
/* write the manifest header */
28882892
if (sizeof(manifest) != php_stream_write(newfile, manifest, sizeof(manifest))
2889-
|| (size_t)phar->alias_len != php_stream_write(newfile, phar->alias, phar->alias_len)) {
2893+
|| written_alias_len != php_stream_write(newfile, ZSTR_VAL(phar->alias), written_alias_len)) {
28902894

28912895
if (must_close_old_file) {
28922896
php_stream_close(oldfile);
28932897
}
28942898

28952899
php_stream_close(newfile);
2896-
phar->alias_len = restore_alias_len;
28972900

28982901
if (error) {
28992902
spprintf(error, 0, "unable to write manifest header of new phar \"%s\"", phar->fname);
@@ -2902,8 +2905,6 @@ void phar_flush_ex(phar_archive_data *phar, zend_string *user_stub, bool is_defa
29022905
goto cleanup;
29032906
}
29042907

2905-
phar->alias_len = restore_alias_len;
2906-
29072908
phar_set_32(manifest, main_metadata_str.s ? ZSTR_LEN(main_metadata_str.s) : 0);
29082909
if (4 != php_stream_write(newfile, manifest, 4) || ((main_metadata_str.s ? ZSTR_LEN(main_metadata_str.s) : 0)
29092910
&& ZSTR_LEN(main_metadata_str.s) != php_stream_write(newfile, ZSTR_VAL(main_metadata_str.s), ZSTR_LEN(main_metadata_str.s)))) {
@@ -2914,7 +2915,6 @@ void phar_flush_ex(phar_archive_data *phar, zend_string *user_stub, bool is_defa
29142915
}
29152916

29162917
php_stream_close(newfile);
2917-
phar->alias_len = restore_alias_len;
29182918

29192919
if (error) {
29202920
spprintf(error, 0, "unable to write manifest meta-data of new phar \"%s\"", phar->fname);
@@ -3271,7 +3271,7 @@ static zend_op_array *phar_compile_file(zend_file_handle *file_handle, int type)
32713271
return phar_orig_compile_file(file_handle, type);
32723272
}
32733273
if (strstr(ZSTR_VAL(file_handle->filename), ".phar") && !strstr(ZSTR_VAL(file_handle->filename), "://")) {
3274-
if (SUCCESS == phar_open_from_filename(ZSTR_VAL(file_handle->filename), ZSTR_LEN(file_handle->filename), NULL, 0, 0, &phar, NULL)) {
3274+
if (SUCCESS == phar_open_from_filename(ZSTR_VAL(file_handle->filename), ZSTR_LEN(file_handle->filename), NULL, 0, &phar, NULL)) {
32753275
if (phar->is_zip || phar->is_tar) {
32763276
zend_file_handle f;
32773277

@@ -3456,7 +3456,8 @@ void phar_request_initialize(void) /* {{{ */
34563456
if (!PHAR_G(request_init))
34573457
{
34583458
PHAR_G(last_phar) = NULL;
3459-
PHAR_G(last_phar_name) = PHAR_G(last_alias) = NULL;
3459+
PHAR_G(last_phar_name) = NULL;
3460+
PHAR_G(last_alias) = NULL;
34603461
PHAR_G(has_bz2) = zend_hash_str_exists(&module_registry, "bz2", sizeof("bz2")-1);
34613462
PHAR_G(has_zlib) = zend_hash_str_exists(&module_registry, "zlib", sizeof("zlib")-1);
34623463
PHAR_G(request_init) = 1;

ext/phar/phar_internal.h

+6-8
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,7 @@ ZEND_BEGIN_MODULE_GLOBALS(phar)
150150
/* phar_get_archive cache */
151151
char* last_phar_name;
152152
uint32_t last_phar_name_len;
153-
char* last_alias;
154-
uint32_t last_alias_len;
153+
zend_string*last_alias;
155154
phar_archive_data* last_phar;
156155
HashTable mime_types;
157156
ZEND_END_MODULE_GLOBALS(phar)
@@ -248,8 +247,7 @@ struct _phar_archive_data {
248247
/* for phar_detect_fname_ext, this stores the location of the file extension within fname */
249248
char *ext;
250249
uint32_t ext_len;
251-
char *alias;
252-
uint32_t alias_len;
250+
zend_string *alias;
253251
char version[12];
254252
size_t halt_offset;
255253
HashTable manifest;
@@ -405,12 +403,12 @@ void phar_object_init(void);
405403
void phar_destroy_phar_data(phar_archive_data *phar);
406404

407405
zend_result phar_postprocess_file(phar_entry_data *idata, uint32_t crc32, char **error, int process_zip);
408-
zend_result phar_open_from_filename(char *fname, size_t fname_len, char *alias, size_t alias_len, uint32_t options, phar_archive_data** pphar, char **error);
409-
zend_result phar_open_or_create_filename(char *fname, size_t fname_len, char *alias, size_t alias_len, bool is_data, uint32_t options, phar_archive_data** pphar, char **error);
406+
zend_result phar_open_from_filename(char *fname, size_t fname_len, zend_string *alias, uint32_t options, phar_archive_data** pphar, char **error);
407+
zend_result phar_open_or_create_filename(char *fname, size_t fname_len, zend_string *alias, bool is_data, uint32_t options, phar_archive_data** pphar, char **error);
410408
zend_result phar_create_or_parse_filename(char *fname, size_t fname_len, char *alias, size_t alias_len, bool is_data, uint32_t options, phar_archive_data** pphar, char **error);
411-
zend_result phar_open_executed_filename(char *alias, size_t alias_len, char **error);
409+
zend_result phar_open_executed_filename(zend_string *alias, char **error);
412410
zend_result phar_free_alias(phar_archive_data *phar);
413-
zend_result phar_get_archive(phar_archive_data **archive, char *fname, size_t fname_len, char *alias, size_t alias_len, char **error);
411+
zend_result phar_get_archive(phar_archive_data **archive, char *fname, size_t fname_len, zend_string *alias, char **error);
414412
zend_result phar_verify_signature(php_stream *fp, size_t end_of_phar, uint32_t sig_type, char *sig, size_t sig_len, char *fname, char **signature, size_t *signature_len, char **error);
415413
zend_result phar_create_signature(phar_archive_data *phar, php_stream *fp, char **signature, size_t *signature_length, char **error);
416414

0 commit comments

Comments
 (0)