@@ -913,15 +913,16 @@ PHP_METHOD(SplFileInfo, getFilename)
913
913
914
914
path = spl_filesystem_object_get_path (intern );
915
915
916
- ZEND_ASSERT (path );
917
916
if (path && ZSTR_LEN (path ) && ZSTR_LEN (path ) < ZSTR_LEN (intern -> file_name )) {
918
917
/* +1 to skip the trailing / of the path in the file name */
919
918
size_t path_len = ZSTR_LEN (path ) + 1 ;
920
919
RETVAL_STRINGL (ZSTR_VAL (intern -> file_name ) + path_len , ZSTR_LEN (intern -> file_name ) - path_len );
921
920
} else {
922
921
RETVAL_STR_COPY (intern -> file_name );
923
922
}
924
- zend_string_release_ex (path , /* persistent */ false);
923
+ if (path ) {
924
+ zend_string_release_ex (path , /* persistent */ false);
925
+ }
925
926
}
926
927
/* }}} */
927
928
@@ -961,14 +962,16 @@ PHP_METHOD(SplFileInfo, getExtension)
961
962
962
963
path = spl_filesystem_object_get_path (intern );
963
964
964
- if (ZSTR_LEN (path ) && ZSTR_LEN (path ) < ZSTR_LEN (intern -> file_name )) {
965
+ if (path && ZSTR_LEN (path ) && ZSTR_LEN (path ) < ZSTR_LEN (intern -> file_name )) {
965
966
fname = ZSTR_VAL (intern -> file_name ) + ZSTR_LEN (path ) + 1 ;
966
967
flen = ZSTR_LEN (intern -> file_name ) - (ZSTR_LEN (path ) + 1 );
967
968
} else {
968
969
fname = ZSTR_VAL (intern -> file_name );
969
970
flen = ZSTR_LEN (intern -> file_name );
970
971
}
971
- zend_string_release_ex (path , /* persistent */ false);
972
+ if (path ) {
973
+ zend_string_release_ex (path , /* persistent */ false);
974
+ }
972
975
973
976
ret = php_basename (fname , flen , NULL , 0 );
974
977
@@ -1040,7 +1043,9 @@ PHP_METHOD(SplFileInfo, getBasename)
1040
1043
fname = ZSTR_VAL (intern -> file_name );
1041
1044
flen = ZSTR_LEN (intern -> file_name );
1042
1045
}
1043
- zend_string_release_ex (path , /* persistent */ false);
1046
+ if (path ) {
1047
+ zend_string_release_ex (path , /* persistent */ false);
1048
+ }
1044
1049
1045
1050
RETURN_STR (php_basename (fname , flen , suffix , slen ));
1046
1051
}
0 commit comments