From 7197f0ffccea7f195bc28571e30c389eadda874b Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 9 Mar 2013 23:08:14 +0800 Subject: [PATCH] Fixed confused exception message while user threw exception --- Zend/tests/bug64354.phpt | 24 ++++++++++++++++++++++++ Zend/zend_interfaces.c | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 Zend/tests/bug64354.phpt diff --git a/Zend/tests/bug64354.phpt b/Zend/tests/bug64354.phpt new file mode 100644 index 0000000000..03a4b80b4b --- /dev/null +++ b/Zend/tests/bug64354.phpt @@ -0,0 +1,24 @@ +--TEST-- +Bug #64354 (Unserialize array of objects whose class can't be autoloaded fail) +--FILE-- +getMessage()); +} +?> +--EXPECTF-- +string(9) "serialize" diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c index 384b66da4b..e2e81ed326 100644 --- a/Zend/zend_interfaces.c +++ b/Zend/zend_interfaces.c @@ -452,7 +452,7 @@ ZEND_API int zend_user_serialize(zval *object, unsigned char **buffer, zend_uint zval_ptr_dtor(&retval); } - if (result == FAILURE) { + if (result == FAILURE && !EG(exception)) { zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "%s::serialize() must return a string or NULL", ce->name); } return result; -- 2.50.0