Skip to content

Commit b6ecdd4

Browse files
committed
Merge branch 'PHP-8.1'
* PHP-8.1: Properly escape the default value of string properties and enum cases
2 parents 2ffa70b + 4483ecf commit b6ecdd4

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed

build/gen_stub.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1351,7 +1351,8 @@ function initializeZval(string $zvalName, $value): string
13511351
if ($value === "") {
13521352
$code .= "\tZVAL_EMPTY_STRING(&$zvalName);\n";
13531353
} else {
1354-
$code .= "\tzend_string *{$zvalName}_str = zend_string_init(\"$value\", sizeof(\"$value\") - 1, 1);\n";
1354+
$strValue = addslashes($value);
1355+
$code .= "\tzend_string *{$zvalName}_str = zend_string_init(\"$strValue\", sizeof(\"$strValue\") - 1, 1);\n";
13551356
$code .= "\tZVAL_STR(&$zvalName, {$zvalName}_str);\n";
13561357
}
13571358
break;

ext/zend_test/test.stub.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ enum ZendTestUnitEnum {
5353
enum ZendTestStringEnum: string {
5454
case Foo = "Test1";
5555
case Bar = "Test2";
56+
case Baz = "Test2\\a";
5657
}
5758

5859
function zend_test_array_return(): array {}

ext/zend_test/test_arginfo.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* This is a generated file, edit the .stub.php file instead.
2-
* Stub hash: f8a7cb96dcefc802b69426e83cdfcaf1afd56611 */
2+
* Stub hash: 53832c784e59195e8ef41710c1e4e778f396c99b */
33

44
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_array_return, 0, 0, IS_ARRAY, 0)
55
ZEND_END_ARG_INFO()
@@ -314,6 +314,11 @@ static zend_class_entry *register_class_ZendTestStringEnum(void)
314314
ZVAL_STR(&enum_case_Bar_value, enum_case_Bar_value_str);
315315
zend_enum_add_case_cstr(class_entry, "Bar", &enum_case_Bar_value);
316316

317+
zval enum_case_Baz_value;
318+
zend_string *enum_case_Baz_value_str = zend_string_init("Test2\\a", sizeof("Test2\\a") - 1, 1);
319+
ZVAL_STR(&enum_case_Baz_value, enum_case_Baz_value_str);
320+
zend_enum_add_case_cstr(class_entry, "Baz", &enum_case_Baz_value);
321+
317322
return class_entry;
318323
}
319324

0 commit comments

Comments
 (0)