@@ -1363,32 +1363,32 @@ ZEND_ATTRIBUTE_NONNULL_ARGS(1, 6, 7) zend_result phar_open_or_create_filename(ze
13631363 return phar_open_or_create_tar (fname , alias , alias_len , is_data , options , pphar , error );
13641364 }
13651365
1366- return phar_create_or_parse_filename (ZSTR_VAL ( fname ), ZSTR_LEN ( fname ) , alias , alias_len , is_data , options , pphar , error );
1366+ return phar_create_or_parse_filename (fname , alias , alias_len , is_data , options , pphar , error );
13671367}
13681368/* }}} */
13691369
13701370static zend_result phar_open_from_fp (php_stream * fp , char * fname , size_t fname_len , char * alias , size_t alias_len , uint32_t options , phar_archive_data * * pphar , char * * error );
13711371
1372- ZEND_ATTRIBUTE_NONNULL_ARGS (1 , 7 , 8 ) 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 ) /* {{{ */
1372+ ZEND_ATTRIBUTE_NONNULL_ARGS (1 , 6 , 7 ) zend_result phar_create_or_parse_filename (zend_string * fname , char * alias , size_t alias_len , bool is_data , uint32_t options , phar_archive_data * * pphar , char * * error ) /* {{{ */
13731373{
13741374 php_stream * fp ;
13751375 zend_string * actual = NULL ;
1376+ zend_string * save_fname = fname ;
13761377 char * p ;
13771378
1378- if (php_check_open_basedir (fname )) {
1379+ if (php_check_open_basedir (ZSTR_VAL ( fname ) )) {
13791380 return FAILURE ;
13801381 }
13811382
13821383 /* first open readonly so it won't be created if not present */
1383- fp = php_stream_open_wrapper (fname , "rb" , IGNORE_URL |STREAM_MUST_SEEK |0 , & actual );
1384+ fp = php_stream_open_wrapper (ZSTR_VAL ( fname ) , "rb" , IGNORE_URL |STREAM_MUST_SEEK |0 , & actual );
13841385
13851386 if (actual ) {
1386- fname = ZSTR_VAL (actual );
1387- fname_len = ZSTR_LEN (actual );
1387+ fname = actual ;
13881388 }
13891389
13901390 if (fp ) {
1391- if (phar_open_from_fp (fp , fname , fname_len , alias , alias_len , options , pphar , error ) == SUCCESS ) {
1391+ if (phar_open_from_fp (fp , ZSTR_VAL ( fname ), ZSTR_LEN ( fname ) , alias , alias_len , options , pphar , error ) == SUCCESS ) {
13921392 if ((* pphar )-> is_data || !PHAR_G (readonly )) {
13931393 (* pphar )-> is_writeable = 1 ;
13941394 }
@@ -1407,19 +1407,20 @@ ZEND_ATTRIBUTE_NONNULL_ARGS(1, 7, 8) zend_result phar_create_or_parse_filename(c
14071407
14081408 if (actual ) {
14091409 zend_string_release_ex (actual , 0 );
1410+ fname = save_fname ;
14101411 }
14111412
14121413 if (PHAR_G (readonly ) && !is_data ) {
14131414 if (options & REPORT_ERRORS ) {
1414- spprintf (error , 0 , "creating archive \"%s\" disabled by the php.ini setting phar.readonly" , fname );
1415+ spprintf (error , 0 , "creating archive \"%s\" disabled by the php.ini setting phar.readonly" , ZSTR_VAL ( fname ) );
14151416 }
14161417 return FAILURE ;
14171418 }
14181419
14191420 /* set up our manifest */
14201421 phar_archive_data * mydata = ecalloc (1 , sizeof (phar_archive_data ));
14211422 /* TODO: prevent reallocation via a new expand_filepath() API? */
1422- char * new_fname = expand_filepath (fname , NULL );
1423+ char * new_fname = expand_filepath (ZSTR_VAL ( fname ) , NULL );
14231424 if (new_fname == NULL ) {
14241425 efree (mydata );
14251426 return FAILURE ;
@@ -1484,7 +1485,7 @@ ZEND_ATTRIBUTE_NONNULL_ARGS(1, 7, 8) zend_result phar_create_or_parse_filename(c
14841485 if (alias_len && alias ) {
14851486 if (NULL == zend_hash_str_add_ptr (& (PHAR_G (phar_alias_map )), alias , alias_len , mydata )) {
14861487 if (options & REPORT_ERRORS ) {
1487- spprintf (error , 0 , "archive \"%s\" cannot be associated with alias \"%s\", already in use" , fname , alias );
1488+ spprintf (error , 0 , "archive \"%s\" cannot be associated with alias \"%s\", already in use" , ZSTR_VAL ( fname ) , alias );
14881489 }
14891490
14901491 zend_hash_del (& (PHAR_G (phar_fname_map )), mydata -> fname );
0 commit comments