Skip to content

Commit 0c082ca

Browse files
committed
Revert "ext/phar: use zend_string* and concat API for constructor argument"
This reverts commit 131f98a.
1 parent 9f6c339 commit 0c082ca

File tree

1 file changed

+5
-13
lines changed

1 file changed

+5
-13
lines changed

ext/phar/phar_object.c

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,29 +1162,20 @@ PHP_METHOD(Phar, __construct)
11621162
phar_obj->archive = phar_data;
11631163
phar_obj->spl.oth_handler = &phar_spl_foreign_handler;
11641164

1165-
zend_string *file_name_for_recursive_director_iterator_constructor;
11661165
if (entry) {
1167-
file_name_for_recursive_director_iterator_constructor = zend_string_concat3(
1168-
ZEND_STRL("phar://"),
1169-
phar_data->fname, phar_data->fname_len,
1170-
ZSTR_VAL(entry), ZSTR_LEN(entry)
1171-
);
1166+
fname_len = spprintf(&fname, 0, "phar://%s%s", phar_data->fname, ZSTR_VAL(entry));
11721167
zend_string_release_ex(entry, false);
11731168
} else {
1174-
file_name_for_recursive_director_iterator_constructor = zend_string_concat2(
1175-
ZEND_STRL("phar://"),
1176-
phar_data->fname, phar_data->fname_len
1177-
);
1169+
fname_len = spprintf(&fname, 0, "phar://%s", phar_data->fname);
11781170
}
11791171

1180-
ZVAL_STR(&arg1, file_name_for_recursive_director_iterator_constructor);
1172+
ZVAL_STRINGL(&arg1, fname, fname_len);
11811173
ZVAL_LONG(&arg2, flags);
11821174

11831175
zend_call_known_instance_method_with_2_params(spl_ce_RecursiveDirectoryIterator->constructor,
11841176
Z_OBJ_P(ZEND_THIS), NULL, &arg1, &arg2);
11851177

1186-
/* Freeing arg1 */
1187-
zend_string_release_ex(file_name_for_recursive_director_iterator_constructor, false);
1178+
zval_ptr_dtor(&arg1);
11881179

11891180
if (!phar_data->is_persistent) {
11901181
phar_obj->archive->is_data = is_data;
@@ -1194,6 +1185,7 @@ PHP_METHOD(Phar, __construct)
11941185
}
11951186

11961187
phar_obj->spl.info_class = phar_ce_entry;
1188+
efree(fname);
11971189
}
11981190
/* }}} */
11991191

0 commit comments

Comments
 (0)