@@ -925,15 +925,16 @@ PHP_METHOD(SplFileInfo, getFilename)
925
925
926
926
path = spl_filesystem_object_get_path (intern );
927
927
928
- ZEND_ASSERT (path );
929
928
if (path && ZSTR_LEN (path ) && ZSTR_LEN (path ) < ZSTR_LEN (intern -> file_name )) {
930
929
/* +1 to skip the trailing / of the path in the file name */
931
930
size_t path_len = ZSTR_LEN (path ) + 1 ;
932
931
RETVAL_STRINGL (ZSTR_VAL (intern -> file_name ) + path_len , ZSTR_LEN (intern -> file_name ) - path_len );
933
932
} else {
934
933
RETVAL_STR_COPY (intern -> file_name );
935
934
}
936
- zend_string_release_ex (path , /* persistent */ false);
935
+ if (path ) {
936
+ zend_string_release_ex (path , /* persistent */ false);
937
+ }
937
938
}
938
939
/* }}} */
939
940
@@ -973,14 +974,16 @@ PHP_METHOD(SplFileInfo, getExtension)
973
974
974
975
path = spl_filesystem_object_get_path (intern );
975
976
976
- if (ZSTR_LEN (path ) && ZSTR_LEN (path ) < ZSTR_LEN (intern -> file_name )) {
977
+ if (path && ZSTR_LEN (path ) && ZSTR_LEN (path ) < ZSTR_LEN (intern -> file_name )) {
977
978
fname = ZSTR_VAL (intern -> file_name ) + ZSTR_LEN (path ) + 1 ;
978
979
flen = ZSTR_LEN (intern -> file_name ) - (ZSTR_LEN (path ) + 1 );
979
980
} else {
980
981
fname = ZSTR_VAL (intern -> file_name );
981
982
flen = ZSTR_LEN (intern -> file_name );
982
983
}
983
- zend_string_release_ex (path , /* persistent */ false);
984
+ if (path ) {
985
+ zend_string_release_ex (path , /* persistent */ false);
986
+ }
984
987
985
988
ret = php_basename (fname , flen , NULL , 0 );
986
989
@@ -1052,7 +1055,9 @@ PHP_METHOD(SplFileInfo, getBasename)
1052
1055
fname = ZSTR_VAL (intern -> file_name );
1053
1056
flen = ZSTR_LEN (intern -> file_name );
1054
1057
}
1055
- zend_string_release_ex (path , /* persistent */ false);
1058
+ if (path ) {
1059
+ zend_string_release_ex (path , /* persistent */ false);
1060
+ }
1056
1061
1057
1062
RETURN_STR (php_basename (fname , flen , suffix , slen ));
1058
1063
}
0 commit comments