Skip to content

Commit f5dee5d

Browse files
committed
fix a memory leak
1 parent ee24baa commit f5dee5d

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

Zend/zend_namespaces.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ zend_class_entry *create_namespace(zend_string *name) {
3131
return ns;
3232
}
3333

34-
static zend_class_entry *insert_namespace(zend_string *name, zend_string *lc_name) {
34+
static zend_class_entry *insert_namespace(const zend_string *name, zend_string *lc_name) {
3535
zend_class_entry *parent_ns = EG(global_namespace);
3636
zend_class_entry *ns = parent_ns;
3737
const char *start = ZSTR_VAL(name);
@@ -47,10 +47,12 @@ static zend_class_entry *insert_namespace(zend_string *name, zend_string *lc_nam
4747
ns = zend_hash_find_ptr(EG(namespaces), needle);
4848

4949
if (!ns) {
50-
zend_string *interned_name = zend_string_init(ZSTR_VAL(name), len, 1);
50+
zend_string *full_name = zend_string_init(ZSTR_VAL(name), len, 0);
51+
zend_string *interned_name = zend_new_interned_string(full_name);
5152
ns = create_namespace(interned_name);
5253
ns->lexical_scope = parent_ns;
5354
zend_hash_add_ptr(EG(namespaces), lc_name, ns);
55+
zend_string_release(full_name);
5456
}
5557
zend_string_release(needle);
5658

0 commit comments

Comments
 (0)