diff --git a/ext/sysvshm/sysvshm.c b/ext/sysvshm/sysvshm.c index ff80d30012dae..c1372368a34b8 100644 --- a/ext/sysvshm/sysvshm.c +++ b/ext/sysvshm/sysvshm.c @@ -261,7 +261,9 @@ PHP_FUNCTION(shm_put_var) RETURN_THROWS(); } - ZEND_ASSERT(shm_var.s != NULL); + if (UNEXPECTED(shm_var.s == NULL)) { + RETURN_THROWS(); + } /* insert serialized variable into shared memory */ bool ret = php_put_shm_data(shm_list_ptr->ptr, shm_key, shm_var.s); diff --git a/ext/sysvshm/tests/serialize_exception.phpt b/ext/sysvshm/tests/serialize_exception.phpt new file mode 100644 index 0000000000000..aae237e0fb38e --- /dev/null +++ b/ext/sysvshm/tests/serialize_exception.phpt @@ -0,0 +1,27 @@ +--TEST-- +__serialize() exception in shm_put_var() +--EXTENSIONS-- +sysvshm +--FILE-- +getMessage() . "\n"; +} + +shm_remove($s); + +?> +--EXPECT-- +no