Skip to content

Commit 0c64e89

Browse files
committed
Test fix for leaks
1 parent 29e5ead commit 0c64e89

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

Zend/zend_constants.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -571,5 +571,10 @@ ZEND_API zend_result zend_register_constant(zend_string *name, zend_constant *c)
571571
ZEND_API zend_result zend_register_internal_constant(const char *name, size_t name_len, zend_constant *c) {
572572
zend_string *name_str = zend_string_init_interned(name, name_len, ZEND_CONSTANT_FLAGS(c) & CONST_PERSISTENT);
573573

574-
return zend_register_constant(name_str, c);
574+
zend_result result = zend_register_constant(name_str, c);
575+
if (result == FAILURE) {
576+
zend_string_release(name_str);
577+
}
578+
579+
return result;
575580
}

ext/com_dotnet/com_typeinfo.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ PHP_COM_DOTNET_API zend_result php_com_import_typelib(ITypeLib *TL, int mode, in
234234
name = const_name;
235235
}
236236
zend_register_constant(name, &c);
237+
zend_string_release(name);
237238
}
238239
ITypeInfo_ReleaseVarDesc(TypeInfo, pVarDesc);
239240
}

sapi/cli/php_cli.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -558,16 +558,19 @@ static void cli_register_file_handles(void)
558558
php_stream_to_zval(s_err, &ec.value);
559559

560560
Z_CONSTANT_FLAGS(ic.value) = 0;
561-
zend_string *stdin_name = zend_string_init_interned("STDIN", sizeof("STDIN")-1, 0);
561+
zend_string *stdin_name = zend_string_init("STDIN", sizeof("STDIN")-1, 0);
562562
zend_register_constant(stdin_name, &ic);
563+
zend_string_release(stdin_name);
563564

564565
Z_CONSTANT_FLAGS(oc.value) = 0;
565-
zend_string *stdout_name = zend_string_init_interned("STDOUT", sizeof("STDOUT")-1, 0);
566+
zend_string *stdout_name = zend_string_init("STDOUT", sizeof("STDOUT")-1, 0);
566567
zend_register_constant(stdout_name, &oc);
568+
zend_string_release(stdout_name);
567569

568570
Z_CONSTANT_FLAGS(ec.value) = 0;
569-
zend_string *stderr_name = zend_string_init_interned("STDERR", sizeof("STDERR")-1, 0);
571+
zend_string *stderr_name = zend_string_init("STDERR", sizeof("STDERR")-1, 0);
570572
zend_register_constant(stderr_name, &ec);
573+
zend_string_release(stderr_name);
571574
}
572575

573576
static const char *param_mode_conflict = "Either execute direct code, process stdin or use a file.\n";

0 commit comments

Comments
 (0)