Skip to content

Commit 0ce7327

Browse files
committed
Add SensitiveParameterValue as the replacement class
1 parent 8303a8a commit 0ce7327

12 files changed

+74
-39
lines changed

Zend/tests/function_arguments/sensitive_parameter.phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ function test(#[SensitiveParameter] $sensitive)
1313
test('sensitive');
1414
?>
1515
--EXPECTF--
16-
#0 %ssensitive_parameter.php(10): test(Object(SensitiveParameter))
16+
#0 %ssensitive_parameter.php(10): test(Object(SensitiveParameterValue))
1717
array(1) {
1818
[0]=>
1919
array(4) {
@@ -26,7 +26,7 @@ array(1) {
2626
["args"]=>
2727
array(1) {
2828
[0]=>
29-
object(SensitiveParameter)#%d (0) {
29+
object(SensitiveParameterValue)#%d (0) {
3030
}
3131
}
3232
}
@@ -43,7 +43,7 @@ array(1) {
4343
["args"]=>
4444
array(1) {
4545
[0]=>
46-
object(SensitiveParameter)#%d (0) {
46+
object(SensitiveParameterValue)#%d (0) {
4747
}
4848
}
4949
}

Zend/tests/function_arguments/sensitive_parameter_closure.phpt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ $test = function (#[SensitiveParameter] $sensitive)
1313
$test('sensitive');
1414
?>
1515
--EXPECTF--
16-
#0 %ssensitive_parameter_closure.php(10): {closure}(Object(SensitiveParameter))
16+
#0 %ssensitive_parameter_closure.php(10): {closure}(Object(SensitiveParameterValue))
1717
array(1) {
1818
[0]=>
1919
array(4) {
@@ -26,7 +26,7 @@ array(1) {
2626
["args"]=>
2727
array(1) {
2828
[0]=>
29-
object(SensitiveParameter)#%d (0) {
29+
object(SensitiveParameterValue)#%d (0) {
3030
}
3131
}
3232
}
@@ -43,7 +43,7 @@ array(1) {
4343
["args"]=>
4444
array(1) {
4545
[0]=>
46-
object(SensitiveParameter)#%d (0) {
46+
object(SensitiveParameterValue)#%d (0) {
4747
}
4848
}
4949
}

Zend/tests/function_arguments/sensitive_parameter_multiple_arguments.phpt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ function test(
1717
test('sensitive1', 'non_sensitive', 'sensitive2');
1818
?>
1919
--EXPECTF--
20-
#0 %ssensitive_parameter_multiple_arguments.php(14): test(Object(SensitiveParameter), 'non_sensitive', Object(SensitiveParameter))
20+
#0 %ssensitive_parameter_multiple_arguments.php(14): test(Object(SensitiveParameterValue), 'non_sensitive', Object(SensitiveParameterValue))
2121
array(1) {
2222
[0]=>
2323
array(4) {
@@ -30,12 +30,12 @@ array(1) {
3030
["args"]=>
3131
array(3) {
3232
[0]=>
33-
object(SensitiveParameter)#%d (0) {
33+
object(SensitiveParameterValue)#%d (0) {
3434
}
3535
[1]=>
3636
string(13) "non_sensitive"
3737
[2]=>
38-
object(SensitiveParameter)#%d (0) {
38+
object(SensitiveParameterValue)#%d (0) {
3939
}
4040
}
4141
}
@@ -52,12 +52,12 @@ array(1) {
5252
["args"]=>
5353
array(3) {
5454
[0]=>
55-
object(SensitiveParameter)#%d (0) {
55+
object(SensitiveParameterValue)#%d (0) {
5656
}
5757
[1]=>
5858
string(13) "non_sensitive"
5959
[2]=>
60-
object(SensitiveParameter)#%d (0) {
60+
object(SensitiveParameterValue)#%d (0) {
6161
}
6262
}
6363
}

Zend/tests/function_arguments/sensitive_parameter_named_arguments.phpt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ function test(
1717
test(non_sensitive: 'non_sensitive', sensitive2: 'sensitive2');
1818
?>
1919
--EXPECTF--
20-
#0 %ssensitive_parameter_named_arguments.php(14): test(Object(SensitiveParameter), 'non_sensitive', Object(SensitiveParameter))
20+
#0 %ssensitive_parameter_named_arguments.php(14): test(Object(SensitiveParameterValue), 'non_sensitive', Object(SensitiveParameterValue))
2121
array(1) {
2222
[0]=>
2323
array(4) {
@@ -30,12 +30,12 @@ array(1) {
3030
["args"]=>
3131
array(3) {
3232
[0]=>
33-
object(SensitiveParameter)#%d (0) {
33+
object(SensitiveParameterValue)#%d (0) {
3434
}
3535
[1]=>
3636
string(13) "non_sensitive"
3737
[2]=>
38-
object(SensitiveParameter)#%d (0) {
38+
object(SensitiveParameterValue)#%d (0) {
3939
}
4040
}
4141
}
@@ -52,12 +52,12 @@ array(1) {
5252
["args"]=>
5353
array(3) {
5454
[0]=>
55-
object(SensitiveParameter)#%d (0) {
55+
object(SensitiveParameterValue)#%d (0) {
5656
}
5757
[1]=>
5858
string(13) "non_sensitive"
5959
[2]=>
60-
object(SensitiveParameter)#%d (0) {
60+
object(SensitiveParameterValue)#%d (0) {
6161
}
6262
}
6363
}

Zend/tests/function_arguments/sensitive_parameter_nested_calls.phpt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ function wrapper(
2626
wrapper('foo', 'bar', 'baz');
2727
?>
2828
--EXPECTF--
29-
#0 %ssensitive_parameter_nested_calls.php(20): test(Object(SensitiveParameter), 'bar', Object(SensitiveParameter))
30-
#1 %ssensitive_parameter_nested_calls.php(23): wrapper('foo', Object(SensitiveParameter), Object(SensitiveParameter))
29+
#0 %ssensitive_parameter_nested_calls.php(20): test(Object(SensitiveParameterValue), 'bar', Object(SensitiveParameterValue))
30+
#1 %ssensitive_parameter_nested_calls.php(23): wrapper('foo', Object(SensitiveParameterValue), Object(SensitiveParameterValue))
3131
array(2) {
3232
[0]=>
3333
array(4) {
@@ -40,12 +40,12 @@ array(2) {
4040
["args"]=>
4141
array(3) {
4242
[0]=>
43-
object(SensitiveParameter)#%d (0) {
43+
object(SensitiveParameterValue)#%d (0) {
4444
}
4545
[1]=>
4646
string(3) "bar"
4747
[2]=>
48-
object(SensitiveParameter)#%d (0) {
48+
object(SensitiveParameterValue)#%d (0) {
4949
}
5050
}
5151
}
@@ -62,10 +62,10 @@ array(2) {
6262
[0]=>
6363
string(3) "foo"
6464
[1]=>
65-
object(SensitiveParameter)#%d (0) {
65+
object(SensitiveParameterValue)#%d (0) {
6666
}
6767
[2]=>
68-
object(SensitiveParameter)#%d (0) {
68+
object(SensitiveParameterValue)#%d (0) {
6969
}
7070
}
7171
}
@@ -82,12 +82,12 @@ array(2) {
8282
["args"]=>
8383
array(3) {
8484
[0]=>
85-
object(SensitiveParameter)#%d (0) {
85+
object(SensitiveParameterValue)#%d (0) {
8686
}
8787
[1]=>
8888
string(3) "bar"
8989
[2]=>
90-
object(SensitiveParameter)#%d (0) {
90+
object(SensitiveParameterValue)#%d (0) {
9191
}
9292
}
9393
}
@@ -104,10 +104,10 @@ array(2) {
104104
[0]=>
105105
string(3) "foo"
106106
[1]=>
107-
object(SensitiveParameter)#%d (0) {
107+
object(SensitiveParameterValue)#%d (0) {
108108
}
109109
[2]=>
110-
object(SensitiveParameter)#%d (0) {
110+
object(SensitiveParameterValue)#%d (0) {
111111
}
112112
}
113113
}

Zend/tests/function_arguments/sensitive_parameter_variadic_arguments.phpt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ function test(
1515
test('foo', 'bar', 'baz');
1616
?>
1717
--EXPECTF--
18-
#0 %ssensitive_parameter_variadic_arguments.php(12): test(Object(SensitiveParameter), Object(SensitiveParameter), Object(SensitiveParameter))
18+
#0 %ssensitive_parameter_variadic_arguments.php(12): test(Object(SensitiveParameterValue), Object(SensitiveParameterValue), Object(SensitiveParameterValue))
1919
array(1) {
2020
[0]=>
2121
array(4) {
@@ -28,13 +28,13 @@ array(1) {
2828
["args"]=>
2929
array(3) {
3030
[0]=>
31-
object(SensitiveParameter)#%d (0) {
31+
object(SensitiveParameterValue)#%d (0) {
3232
}
3333
[1]=>
34-
object(SensitiveParameter)#%d (0) {
34+
object(SensitiveParameterValue)#%d (0) {
3535
}
3636
[2]=>
37-
object(SensitiveParameter)#%d (0) {
37+
object(SensitiveParameterValue)#%d (0) {
3838
}
3939
}
4040
}
@@ -51,13 +51,13 @@ array(1) {
5151
["args"]=>
5252
array(3) {
5353
[0]=>
54-
object(SensitiveParameter)#%d (0) {
54+
object(SensitiveParameterValue)#%d (0) {
5555
}
5656
[1]=>
57-
object(SensitiveParameter)#%d (0) {
57+
object(SensitiveParameterValue)#%d (0) {
5858
}
5959
[2]=>
60-
object(SensitiveParameter)#%d (0) {
60+
object(SensitiveParameterValue)#%d (0) {
6161
}
6262
}
6363
}

Zend/zend_attributes.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ ZEND_API zend_class_entry *zend_ce_attribute;
2727
ZEND_API zend_class_entry *zend_ce_return_type_will_change_attribute;
2828
ZEND_API zend_class_entry *zend_ce_allow_dynamic_properties;
2929
ZEND_API zend_class_entry *zend_ce_sensitive_parameter;
30+
ZEND_API zend_class_entry *zend_ce_sensitive_parameter_value;
3031

3132
static HashTable internal_attributes;
3233

@@ -97,6 +98,11 @@ ZEND_METHOD(SensitiveParameter, __construct)
9798
ZEND_PARSE_PARAMETERS_NONE();
9899
}
99100

101+
ZEND_METHOD(SensitiveParameterValue, __construct)
102+
{
103+
ZEND_PARSE_PARAMETERS_NONE();
104+
}
105+
100106
static zend_attribute *get_attribute(HashTable *attributes, zend_string *lcname, uint32_t offset)
101107
{
102108
if (attributes) {
@@ -319,6 +325,9 @@ void zend_register_attribute_ce(void)
319325

320326
zend_ce_sensitive_parameter = register_class_SensitiveParameter();
321327
attr = zend_internal_attribute_register(zend_ce_sensitive_parameter, ZEND_ATTRIBUTE_TARGET_PARAMETER);
328+
329+
/* This is not an attribute, thus the register call is missing. */
330+
zend_ce_sensitive_parameter_value = register_class_SensitiveParameterValue();
322331
}
323332

324333
void zend_attributes_shutdown(void)

Zend/zend_attributes.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ BEGIN_EXTERN_C()
4242
extern ZEND_API zend_class_entry *zend_ce_attribute;
4343
extern ZEND_API zend_class_entry *zend_ce_allow_dynamic_properties;
4444
extern ZEND_API zend_class_entry *zend_ce_sensitive_parameter;
45+
extern ZEND_API zend_class_entry *zend_ce_sensitive_parameter_value;
4546

4647
typedef struct {
4748
zend_string *name;

Zend/zend_attributes.stub.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,8 @@ final class SensitiveParameter
2323
{
2424
public function __construct() {}
2525
}
26+
27+
final class SensitiveParameterValue
28+
{
29+
public function __construct() {}
30+
}

Zend/zend_attributes_arginfo.h

Lines changed: 21 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: ef173973a5912844d41e6d6161ecb54afbedf7c9 */
2+
* Stub hash: 5cc7e0e910c5d61926451412e176fa00a92b3239 */
33

44
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Attribute___construct, 0, 0, 0)
55
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "Attribute::TARGET_ALL")
@@ -12,11 +12,14 @@ ZEND_END_ARG_INFO()
1212

1313
#define arginfo_class_SensitiveParameter___construct arginfo_class_ReturnTypeWillChange___construct
1414

15+
#define arginfo_class_SensitiveParameterValue___construct arginfo_class_ReturnTypeWillChange___construct
16+
1517

1618
ZEND_METHOD(Attribute, __construct);
1719
ZEND_METHOD(ReturnTypeWillChange, __construct);
1820
ZEND_METHOD(AllowDynamicProperties, __construct);
1921
ZEND_METHOD(SensitiveParameter, __construct);
22+
ZEND_METHOD(SensitiveParameterValue, __construct);
2023

2124

2225
static const zend_function_entry class_Attribute_methods[] = {
@@ -42,6 +45,12 @@ static const zend_function_entry class_SensitiveParameter_methods[] = {
4245
ZEND_FE_END
4346
};
4447

48+
49+
static const zend_function_entry class_SensitiveParameterValue_methods[] = {
50+
ZEND_ME(SensitiveParameterValue, __construct, arginfo_class_SensitiveParameterValue___construct, ZEND_ACC_PUBLIC)
51+
ZEND_FE_END
52+
};
53+
4554
static zend_class_entry *register_class_Attribute(void)
4655
{
4756
zend_class_entry ce, *class_entry;
@@ -91,3 +100,14 @@ static zend_class_entry *register_class_SensitiveParameter(void)
91100

92101
return class_entry;
93102
}
103+
104+
static zend_class_entry *register_class_SensitiveParameterValue(void)
105+
{
106+
zend_class_entry ce, *class_entry;
107+
108+
INIT_CLASS_ENTRY(ce, "SensitiveParameterValue", class_SensitiveParameterValue_methods);
109+
class_entry = zend_register_internal_class_ex(&ce, NULL);
110+
class_entry->ce_flags |= ZEND_ACC_FINAL;
111+
112+
return class_entry;
113+
}

Zend/zend_builtin_functions.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1568,7 +1568,7 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) /
15681568

15691569
if (attribute != NULL) {
15701570
zval arg;
1571-
object_init_ex(&arg, zend_ce_sensitive_parameter);
1571+
object_init_ex(&arg, zend_ce_sensitive_parameter_value);
15721572
ZEND_HASH_FILL_SET(&arg);
15731573
last_was_sensitive = 1;
15741574
} else {
@@ -1595,7 +1595,7 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) /
15951595

15961596
if (attribute != NULL) {
15971597
zval arg;
1598-
object_init_ex(&arg, zend_ce_sensitive_parameter);
1598+
object_init_ex(&arg, zend_ce_sensitive_parameter_value);
15991599
ZEND_HASH_FILL_SET(&arg);
16001600
last_was_sensitive = 1;
16011601
} else {
@@ -1631,7 +1631,7 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) /
16311631
|| attribute != NULL
16321632
) {
16331633
zval arg;
1634-
object_init_ex(&arg, zend_ce_sensitive_parameter);
1634+
object_init_ex(&arg, zend_ce_sensitive_parameter_value);
16351635
ZEND_HASH_FILL_SET(&arg);
16361636
last_was_sensitive = 1;
16371637
} else {

ext/standard/tests/password/password_hash_sensitive_parameter.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ try {
1616
--EXPECTF--
1717
ArgumentCountError: password_hash() expects at least 2 arguments, 1 given in %spassword_hash_sensitive_parameter.php:3
1818
Stack trace:
19-
#0 %spassword_hash_sensitive_parameter.php(3): password_hash(Object(SensitiveParameter))
19+
#0 %spassword_hash_sensitive_parameter.php(3): password_hash(Object(SensitiveParameterValue))
2020
#1 {main}
2121
ValueError: password_hash(): Argument #2 ($algo) must be a valid password hashing algorithm in%spassword_hash_sensitive_parameter.php:8
2222
Stack trace:
23-
#0 %spassword_hash_sensitive_parameter.php(8): password_hash(Object(SensitiveParameter), 'Invalid')
23+
#0 %spassword_hash_sensitive_parameter.php(8): password_hash(Object(SensitiveParameterValue), 'Invalid')
2424
#1 {main}

0 commit comments

Comments
 (0)