Skip to content

Commit 322864b

Browse files
committed
Drop serial denier functions
1 parent c50f4de commit 322864b

File tree

5 files changed

+6
-24
lines changed

5 files changed

+6
-24
lines changed

UPGRADING.INTERNALS

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,7 @@ PHP 8.1 INTERNALS UPGRADE NOTES
4949
macro. Replace ZEND_ATOL(i, s) with i = ZEND_ATOL(s).
5050
f. Non-serializable classes should be indicated using the
5151
ZEND_ACC_NOT_SERIALIZABLE (@not-serializable in stubs) rather than the
52-
zend_class_(un)serialize_deny handlers. Support for the serialization
53-
handlers will be dropped in the future.
52+
zend_class_(un)serialize_deny handlers which are removed.
5453

5554
========================
5655
2. Build system changes

Zend/zend_interfaces.c

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -403,21 +403,6 @@ ZEND_API int zend_user_unserialize(zval *object, zend_class_entry *ce, const uns
403403
}
404404
/* }}} */
405405

406-
ZEND_API int zend_class_serialize_deny(zval *object, unsigned char **buffer, size_t *buf_len, zend_serialize_data *data) /* {{{ */
407-
{
408-
zend_class_entry *ce = Z_OBJCE_P(object);
409-
zend_throw_exception_ex(NULL, 0, "Serialization of '%s' is not allowed", ZSTR_VAL(ce->name));
410-
return FAILURE;
411-
}
412-
/* }}} */
413-
414-
ZEND_API int zend_class_unserialize_deny(zval *object, zend_class_entry *ce, const unsigned char *buf, size_t buf_len, zend_unserialize_data *data) /* {{{ */
415-
{
416-
zend_throw_exception_ex(NULL, 0, "Unserialization of '%s' is not allowed", ZSTR_VAL(ce->name));
417-
return FAILURE;
418-
}
419-
/* }}} */
420-
421406
/* {{{ zend_implement_serializable */
422407
static int zend_implement_serializable(zend_class_entry *interface, zend_class_entry *class_type)
423408
{
@@ -623,8 +608,6 @@ ZEND_API void zend_register_interfaces(void)
623608

624609
zend_ce_internal_iterator = register_class_InternalIterator(zend_ce_iterator);
625610
zend_ce_internal_iterator->create_object = zend_internal_iterator_create;
626-
zend_ce_internal_iterator->serialize = zend_class_serialize_deny;
627-
zend_ce_internal_iterator->unserialize = zend_class_unserialize_deny;
628611

629612
memcpy(&zend_internal_iterator_handlers, zend_get_std_object_handlers(),
630613
sizeof(zend_object_handlers));

Zend/zend_interfaces.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,6 @@ ZEND_API void zend_register_interfaces(void);
6464
ZEND_API int zend_user_serialize(zval *object, unsigned char **buffer, size_t *buf_len, zend_serialize_data *data);
6565
ZEND_API int zend_user_unserialize(zval *object, zend_class_entry *ce, const unsigned char *buf, size_t buf_len, zend_unserialize_data *data);
6666

67-
ZEND_API int zend_class_serialize_deny(zval *object, unsigned char **buffer, size_t *buf_len, zend_serialize_data *data);
68-
ZEND_API int zend_class_unserialize_deny(zval *object, zend_class_entry *ce, const unsigned char *buf, size_t buf_len, zend_unserialize_data *data);
69-
7067
ZEND_API zend_result zend_create_internal_iterator_zval(zval *return_value, zval *obj);
7168

7269
END_EXTERN_C()

Zend/zend_interfaces.stub.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ interface Stringable
6666
public function __toString(): string;
6767
}
6868

69+
/**
70+
* @not-serializable
71+
*/
6972
final class InternalIterator implements Iterator
7073
{
7174
private function __construct() {}

Zend/zend_interfaces_arginfo.h

Lines changed: 2 additions & 2 deletions
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: 339e326a82a7fd1e2ae419c8c86095e29028fbd6 */
2+
* Stub hash: a9c915c11e5989d8c7cf2d704ada09ca765670c3 */
33

44
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_IteratorAggregate_getIterator, 0, 0, Traversable, 0)
55
ZEND_END_ARG_INFO()
@@ -208,7 +208,7 @@ static zend_class_entry *register_class_InternalIterator(zend_class_entry *class
208208

209209
INIT_CLASS_ENTRY(ce, "InternalIterator", class_InternalIterator_methods);
210210
class_entry = zend_register_internal_class_ex(&ce, NULL);
211-
class_entry->ce_flags |= ZEND_ACC_FINAL;
211+
class_entry->ce_flags |= ZEND_ACC_FINAL|ZEND_ACC_NOT_SERIALIZABLE;
212212
zend_class_implements(class_entry, 1, class_entry_Iterator);
213213

214214
return class_entry;

0 commit comments

Comments
 (0)