summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/spl/spl_directory.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c
index a7d8a32563..bf23c644c9 100644
--- a/ext/spl/spl_directory.c
+++ b/ext/spl/spl_directory.c
@@ -1546,8 +1546,6 @@ SPL_METHOD(RecursiveDirectoryIterator, getSubPath)
SPL_METHOD(RecursiveDirectoryIterator, getSubPathname)
{
spl_filesystem_object *intern = Z_SPLFILESYSTEM_P(getThis());
- char *sub_name;
- size_t len;
char slash = SPL_HAS_FLAG(intern->flags, SPL_FILE_DIR_UNIXPATHS) ? '/' : DEFAULT_SLASH;
if (zend_parse_parameters_none() == FAILURE) {
@@ -1555,9 +1553,7 @@ SPL_METHOD(RecursiveDirectoryIterator, getSubPathname)
}
if (intern->u.dir.sub_path) {
- len = spprintf(&sub_name, 0, "%s%c%s", intern->u.dir.sub_path, slash, intern->u.dir.entry.d_name);
- RETVAL_STRINGL(sub_name, len);
- efree(sub_name);
+ RETURN_NEW_STR(strpprintf(0, "%s%c%s", intern->u.dir.sub_path, slash, intern->u.dir.entry.d_name));
} else {
RETURN_STRING(intern->u.dir.entry.d_name);
}