@@ -504,15 +504,17 @@ static zend_result phar_open_parsed_phar(char *fname, size_t fname_len, char *al
504504 phar_unixify_path_separators (fname , fname_len );
505505 }
506506#endif
507- if (SUCCESS == phar_get_archive (& phar , fname , fname_len , alias , alias_len , error )
508- && ((alias && zend_string_equals_cstr (phar -> fname , fname , fname_len )) || !alias )
509- ) {
507+ zend_result archive_retrieved = phar_get_archive (& phar , fname , fname_len , alias , alias_len , error );
510508#ifdef PHP_WIN32
511- if (fname != save_fname ) {
512- free_alloca (fname , fname_use_heap );
513- fname = save_fname ;
514- }
509+ if (fname != save_fname ) {
510+ free_alloca (fname , fname_use_heap );
511+ fname = save_fname ;
512+ }
515513#endif
514+
515+ if (SUCCESS == archive_retrieved
516+ && ((alias && zend_string_equals_cstr (phar -> fname , fname , fname_len )) || !alias )
517+ ) {
516518 /* logic above is as follows:
517519 If an explicit alias was requested, ensure the filename passed in
518520 matches the phar's filename.
@@ -537,12 +539,6 @@ static zend_result phar_open_parsed_phar(char *fname, size_t fname_len, char *al
537539
538540 return SUCCESS ;
539541 } else {
540- #ifdef PHP_WIN32
541- if (fname != save_fname ) {
542- free_alloca (fname , fname_use_heap );
543- fname = save_fname ;
544- }
545- #endif
546542 if (pphar ) {
547543 * pphar = NULL ;
548544 }
0 commit comments