diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index 0204e14a58f6a..57eb010821069 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 0000000000000..c8d3603e720b7 --- /dev/null +++ b/tests/lang/zend_throw_exception_001.phpt @@ -0,0 +1,14 @@ +--TEST-- +zend_throw_exception with NULL message +--FILE-- + +--EXPECT-- +Done