]> granicus.if.org Git - php/commitdiff
Fix two memory errors by interning earlier
authorNikita Popov <nikic@php.net>
Sun, 21 Sep 2014 21:56:09 +0000 (23:56 +0200)
committerNikita Popov <nikic@php.net>
Sun, 21 Sep 2014 21:56:09 +0000 (23:56 +0200)
Zend/zend_compile.c

index 15902256db335c26543b08191d8bdb035a22968b..7b8004533a9113d2a127856ad98cb62abfa57f4c 100644 (file)
@@ -128,7 +128,7 @@ static zend_string *zend_build_runtime_definition_key(zend_string *name, unsigne
        /* NULL, name length, filename length, last accepting char position length */
        result = zend_string_alloc(1 + name->len + filename_len + char_pos_len, 0);
        sprintf(result->val, "%c%s%s%s", '\0', name->val, filename, char_pos_buf);
-       return result;
+       return zend_new_interned_string(result TSRMLS_CC);
 }
 /* }}} */
 
@@ -4864,6 +4864,7 @@ void zend_compile_const_decl(zend_ast *ast TSRMLS_DC) /* {{{ */
                }
 
                name = zend_prefix_with_ns(name TSRMLS_CC);
+               name = zend_new_interned_string(name TSRMLS_CC);
 
                if (CG(current_import_const)
                        && (import_name = zend_hash_find_ptr(CG(current_import_const), name))