diff options
author | Joe Watkins <krakjoe@php.net> | 2019-03-26 23:06:00 +0100 |
---|---|---|
committer | Joe Watkins <krakjoe@php.net> | 2019-03-26 23:06:15 +0100 |
commit | e177d26d0efe3d99df1405647cb0e17240460a95 (patch) | |
tree | f7fb8653fb5c7946feb5df7048893dfaf23f8c52 /sapi/phpdbg/phpdbg_bp.c | |
parent | 6ef6d31776ca4f796f761550e9d2137cbbb15a71 (diff) | |
parent | 7df8e4fc0abc105cd5d7b933499bdd275459f7ee (diff) | |
download | php-git-e177d26d0efe3d99df1405647cb0e17240460a95.tar.gz |
Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
Fix #77800 phpdbg segfaults on conditional breakpoints
Diffstat (limited to 'sapi/phpdbg/phpdbg_bp.c')
-rw-r--r-- | sapi/phpdbg/phpdbg_bp.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/sapi/phpdbg/phpdbg_bp.c b/sapi/phpdbg/phpdbg_bp.c index a10d652e33..f370fc0525 100644 --- a/sapi/phpdbg/phpdbg_bp.c +++ b/sapi/phpdbg/phpdbg_bp.c @@ -232,7 +232,7 @@ PHPDBG_API void phpdbg_export_breakpoints_to_string(char **str) /* {{{ */ } ZEND_HASH_FOREACH_END(); } - if (!(*str)[0]) { + if ((*str) && !(*str)[0]) { *str = NULL; } } /* }}} */ @@ -813,6 +813,21 @@ static inline void phpdbg_create_conditional_break(phpdbg_breakcond_t *brake, co uint32_t cops = CG(compiler_options); zval pv; + switch (param->type) { + case STR_PARAM: + case NUMERIC_FUNCTION_PARAM: + case METHOD_PARAM: + case NUMERIC_METHOD_PARAM: + case FILE_PARAM: + case ADDR_PARAM: + /* do nothing */ + break; + + default: + phpdbg_error("eval", "type=\"invalidparameter\"", "Invalid parameter type for conditional breakpoint"); + return; + } + PHPDBG_BREAK_INIT(new_break, PHPDBG_BREAK_COND); new_break.hash = hash; |