diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-06-21 16:52:08 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-06-21 17:01:25 +0200 |
commit | 152ccfb08dd766cdb76583b061dcc2c8a73a7255 (patch) | |
tree | b392bfcf8d2ed898468c8e50fbc80eb5c52503a7 /sapi/phpdbg/phpdbg_prompt.c | |
parent | a7bcfee9c982bd301ad720d880f35ed949c701a0 (diff) | |
download | php-git-152ccfb08dd766cdb76583b061dcc2c8a73a7255.tar.gz |
Fix stack leak in phpdbg
Diffstat (limited to 'sapi/phpdbg/phpdbg_prompt.c')
-rw-r--r-- | sapi/phpdbg/phpdbg_prompt.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sapi/phpdbg/phpdbg_prompt.c b/sapi/phpdbg/phpdbg_prompt.c index e1bfeb45da..248391b188 100644 --- a/sapi/phpdbg/phpdbg_prompt.c +++ b/sapi/phpdbg/phpdbg_prompt.c @@ -1632,7 +1632,14 @@ int phpdbg_interactive(zend_bool allow_async_unsafe, char *input) /* {{{ */ sigio_watcher_start(); } #endif - switch (ret = phpdbg_stack_execute(&stack, allow_async_unsafe)) { + zend_try { + ret = phpdbg_stack_execute(&stack, allow_async_unsafe); + } zend_catch { + phpdbg_stack_free(&stack); + zend_bailout(); + } zend_end_try(); + + switch (ret) { case FAILURE: if (!(PHPDBG_G(flags) & PHPDBG_IS_STOPPING)) { if (!allow_async_unsafe || phpdbg_call_register(&stack) == FAILURE) { |