Skip to content

Commit 2fd9a60

Browse files
committed
fixup! Implement the "Redacting parameters in back traces" RFC
1 parent 3e13cd2 commit 2fd9a60

File tree

1 file changed

+9
-25
lines changed

1 file changed

+9
-25
lines changed

Zend/zend_attributes.c

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@ ZEND_API zend_class_entry *zend_ce_allow_dynamic_properties;
3030
ZEND_API zend_class_entry *zend_ce_sensitive_parameter;
3131
ZEND_API zend_class_entry *zend_ce_sensitive_parameter_value;
3232

33-
typedef struct {
34-
zend_object std;
35-
} attributes_sensitive_parameter_value;
36-
3733
static zend_object_handlers attributes_object_handlers_sensitive_parameter_value;
3834

3935
static HashTable internal_attributes;
@@ -134,25 +130,14 @@ ZEND_METHOD(SensitiveParameterValue, __debugInfo)
134130

135131
static zend_object *attributes_sensitive_parameter_value_new(zend_class_entry *ce)
136132
{
137-
attributes_sensitive_parameter_value *intern = zend_object_alloc(sizeof(attributes_sensitive_parameter_value), ce);
138-
memset(intern, 0, sizeof(attributes_sensitive_parameter_value) - sizeof(zend_object));
139-
140-
zend_object_std_init(&intern->std, ce);
141-
object_properties_init(&intern->std, ce);
142-
intern->std.handlers = &attributes_object_handlers_sensitive_parameter_value;
143-
144-
return &intern->std;
145-
}
133+
zend_object *object;
146134

147-
static inline attributes_sensitive_parameter_value *attributes_sensitive_parameter_value_from_obj(zend_object *obj) {
148-
return (attributes_sensitive_parameter_value *)((char *)(obj) - XtOffsetOf(attributes_sensitive_parameter_value, std));
149-
}
135+
object = zend_objects_new(ce);
136+
object->handlers = &attributes_object_handlers_sensitive_parameter_value;
150137

151-
static void attributes_sensitive_parameter_value_free_obj(zend_object *object)
152-
{
153-
attributes_sensitive_parameter_value *v = attributes_sensitive_parameter_value_from_obj(object);
138+
object_properties_init(object, ce);
154139

155-
zend_object_std_dtor(&v->std);
140+
return object;
156141
}
157142

158143
static HashTable *attributes_sensitive_parameter_value_get_properties_for(zend_object *zobj, zend_prop_purpose purpose)
@@ -388,13 +373,12 @@ void zend_register_attribute_ce(void)
388373
zend_ce_sensitive_parameter = register_class_SensitiveParameter();
389374
attr = zend_internal_attribute_register(zend_ce_sensitive_parameter, ZEND_ATTRIBUTE_TARGET_PARAMETER);
390375

391-
/* This is not an attribute, thus the register call is missing. */
392-
zend_ce_sensitive_parameter_value = register_class_SensitiveParameterValue();
393-
zend_ce_sensitive_parameter_value->create_object = attributes_sensitive_parameter_value_new;
394376
memcpy(&attributes_object_handlers_sensitive_parameter_value, &std_object_handlers, sizeof(zend_object_handlers));
395-
attributes_object_handlers_sensitive_parameter_value.offset = XtOffsetOf(attributes_sensitive_parameter_value, std);
396-
attributes_object_handlers_sensitive_parameter_value.free_obj = attributes_sensitive_parameter_value_free_obj;
397377
attributes_object_handlers_sensitive_parameter_value.get_properties_for = attributes_sensitive_parameter_value_get_properties_for;
378+
379+
/* This is not an actual attribute, thus the zend_internal_attribute_register() call is missing. */
380+
zend_ce_sensitive_parameter_value = register_class_SensitiveParameterValue();
381+
zend_ce_sensitive_parameter_value->create_object = attributes_sensitive_parameter_value_new;
398382
}
399383

400384
void zend_attributes_shutdown(void)

0 commit comments

Comments
 (0)