@@ -609,7 +609,7 @@ PHP_METHOD(Phar, webPhar)
609
609
if (NULL == (z_script_name = zend_hash_str_find (_server , "SCRIPT_NAME" , sizeof ("SCRIPT_NAME" )- 1 )) ||
610
610
IS_STRING != Z_TYPE_P (z_script_name ) ||
611
611
!strstr (Z_STRVAL_P (z_script_name ), basename )) {
612
- return ;
612
+ goto finish ;
613
613
}
614
614
615
615
if (NULL != (z_path_info = zend_hash_str_find (_server , "PATH_INFO" , sizeof ("PATH_INFO" )- 1 )) &&
@@ -634,7 +634,7 @@ PHP_METHOD(Phar, webPhar)
634
634
testit = sapi_getenv ("SCRIPT_NAME" , sizeof ("SCRIPT_NAME" )- 1 );
635
635
if (!(pt = strstr (testit , basename ))) {
636
636
efree (testit );
637
- return ;
637
+ goto finish ;
638
638
}
639
639
640
640
path_info = sapi_getenv ("PATH_INFO" , sizeof ("PATH_INFO" )- 1 );
@@ -659,7 +659,7 @@ PHP_METHOD(Phar, webPhar)
659
659
660
660
if (!(pt = strstr (path_info , basename ))) {
661
661
/* this can happen with rewrite rules - and we have no idea what to do then, so return */
662
- return ;
662
+ goto finish ;
663
663
}
664
664
665
665
entry_len = strlen (path_info );
@@ -707,7 +707,6 @@ PHP_METHOD(Phar, webPhar)
707
707
efree (pt );
708
708
709
709
zend_bailout ();
710
- return ;
711
710
default :
712
711
zend_throw_exception_ex (phar_ce_PharException , 0 , "phar error: rewrite callback must return a string or false" );
713
712
@@ -718,6 +717,9 @@ PHP_METHOD(Phar, webPhar)
718
717
}
719
718
efree (entry );
720
719
efree (pt );
720
+ #ifdef PHP_WIN32
721
+ efree (fname );
722
+ #endif
721
723
RETURN_THROWS ();
722
724
}
723
725
}
@@ -791,9 +793,6 @@ PHP_METHOD(Phar, webPhar)
791
793
if (FAILURE == phar_get_archive (& phar , fname , fname_len , NULL , 0 , NULL ) ||
792
794
(info = phar_get_entry_info (phar , entry , entry_len , NULL , 0 )) == NULL ) {
793
795
phar_do_404 (phar , fname , fname_len , f404 , f404_len , entry , entry_len );
794
- #ifdef PHP_WIN32
795
- efree (fname );
796
- #endif
797
796
zend_bailout ();
798
797
}
799
798
@@ -847,6 +846,11 @@ PHP_METHOD(Phar, webPhar)
847
846
code = phar_file_type (& PHAR_G (mime_types ), entry , & mime_type );
848
847
}
849
848
phar_file_action (phar , info , mime_type , code , entry , entry_len , fname , pt , ru , ru_len );
849
+
850
+ finish : ;
851
+ #ifdef PHP_WIN32
852
+ efree (fname );
853
+ #endif
850
854
}
851
855
/* }}} */
852
856
0 commit comments