@@ -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 );
@@ -685,7 +685,7 @@ PHP_METHOD(Phar, webPhar)
685
685
}
686
686
efree (pt );
687
687
688
- return ;
688
+ goto finish ;
689
689
}
690
690
691
691
fci .param_count = 1 ;
@@ -703,7 +703,7 @@ PHP_METHOD(Phar, webPhar)
703
703
}
704
704
efree (pt );
705
705
706
- return ;
706
+ goto finish ;
707
707
}
708
708
709
709
if (Z_TYPE_P (fci .retval ) == IS_UNDEF || Z_TYPE (retval ) == IS_UNDEF ) {
@@ -712,7 +712,7 @@ PHP_METHOD(Phar, webPhar)
712
712
}
713
713
zend_throw_exception_ex (phar_ce_PharException , 0 , "phar error: rewrite callback must return a string or false" );
714
714
efree (pt );
715
- return ;
715
+ goto finish ;
716
716
}
717
717
718
718
switch (Z_TYPE (retval )) {
@@ -731,15 +731,15 @@ PHP_METHOD(Phar, webPhar)
731
731
efree (pt );
732
732
733
733
zend_bailout ();
734
- return ;
734
+ goto finish ;
735
735
default :
736
736
if (free_pathinfo ) {
737
737
efree (path_info );
738
738
}
739
739
efree (pt );
740
740
741
741
zend_throw_exception_ex (phar_ce_PharException , 0 , "phar error: rewrite callback must return a string or false" );
742
- return ;
742
+ goto finish ;
743
743
}
744
744
}
745
745
@@ -812,9 +812,6 @@ PHP_METHOD(Phar, webPhar)
812
812
if (FAILURE == phar_get_archive (& phar , fname , fname_len , NULL , 0 , NULL ) ||
813
813
(info = phar_get_entry_info (phar , entry , entry_len , NULL , 0 )) == NULL ) {
814
814
phar_do_404 (phar , fname , fname_len , f404 , f404_len , entry , entry_len );
815
- #ifdef PHP_WIN32
816
- efree (fname );
817
- #endif
818
815
zend_bailout ();
819
816
}
820
817
@@ -838,10 +835,8 @@ PHP_METHOD(Phar, webPhar)
838
835
}
839
836
efree (pt );
840
837
efree (entry );
841
- #ifdef PHP_WIN32
842
- efree (fname );
843
- #endif
844
- RETURN_FALSE ;
838
+ RETVAL_FALSE ;
839
+ goto finish ;
845
840
}
846
841
break ;
847
842
case IS_STRING :
@@ -855,10 +850,8 @@ PHP_METHOD(Phar, webPhar)
855
850
}
856
851
efree (pt );
857
852
efree (entry );
858
- #ifdef PHP_WIN32
859
- efree (fname );
860
- #endif
861
- RETURN_FALSE ;
853
+ RETVAL_FALSE ;
854
+ goto finish ;
862
855
}
863
856
}
864
857
}
@@ -868,6 +861,11 @@ PHP_METHOD(Phar, webPhar)
868
861
code = phar_file_type (& PHAR_G (mime_types ), entry , & mime_type );
869
862
}
870
863
phar_file_action (phar , info , mime_type , code , entry , entry_len , fname , pt , ru , ru_len );
864
+
865
+ finish : ;
866
+ #ifdef PHP_WIN32
867
+ efree (fname );
868
+ #endif
871
869
}
872
870
/* }}} */
873
871
0 commit comments