From 888242c30d822392953e1b5f4fc289a96e9da5e0 Mon Sep 17 00:00:00 2001 From: xXx-caillou-xXx Date: Tue, 28 Aug 2018 18:13:29 +0200 Subject: Fix a SIGSEGV on user-created function's return value --- src/sp_execute.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/sp_execute.c') diff --git a/src/sp_execute.c b/src/sp_execute.c index 4b7d6d0..844647e 100644 --- a/src/sp_execute.c +++ b/src/sp_execute.c @@ -187,14 +187,16 @@ static void sp_execute_ex(zend_execute_data *execute_data) { orig_execute_ex(execute_data); - if (UNEXPECTED( + if (EX(return_value) != NULL) { + if (UNEXPECTED( true == should_drop_on_ret_ht( - EX(return_value), function_name, - SNUFFLEUPAGUS_G(config) - .config_disabled_functions_reg_ret->disabled_functions, - SNUFFLEUPAGUS_G(config).config_disabled_functions_ret))) { - sp_terminate(); + EX(return_value), function_name, + SNUFFLEUPAGUS_G(config) + .config_disabled_functions_reg_ret->disabled_functions, + SNUFFLEUPAGUS_G(config).config_disabled_functions_ret))) { + sp_terminate(); + } } efree(function_name); } else { -- cgit v1.3