From: twosee Date: Sat, 6 Jun 2020 06:47:39 +0000 (+0800) Subject: Fix BC break of zend_throw_exception X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cb2275866dbc2a3aedfa7f216c6cb38653d67af6;p=php Fix BC break of zend_throw_exception This also fixes a SegFault Closes GH-5670 --- diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index 0204e14a58..57eb010821 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -851,9 +851,11 @@ static zend_object *zend_throw_exception_zstr(zend_class_entry *exception_ce, ze ZEND_API ZEND_COLD zend_object *zend_throw_exception(zend_class_entry *exception_ce, const char *message, zend_long code) /* {{{ */ { - zend_string *msg_str = zend_string_init(message, strlen(message), 0); + zend_string *msg_str = message ? zend_string_init(message, strlen(message), 0) : NULL; zend_object *ex = zend_throw_exception_zstr(exception_ce, msg_str, code); - zend_string_release(msg_str); + if (msg_str) { + zend_string_release(msg_str); + } return ex; } /* }}} */ diff --git a/tests/lang/zend_throw_exception_001.phpt b/tests/lang/zend_throw_exception_001.phpt new file mode 100644 index 0000000000..c8d3603e72 --- /dev/null +++ b/tests/lang/zend_throw_exception_001.phpt @@ -0,0 +1,14 @@ +--TEST-- +zend_throw_exception with NULL message +--FILE-- + +--EXPECT-- +Done