1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00

Fix #77800 phpdbg segfaults on conditional breakpoints

This commit is contained in:
Joe Watkins
2019-03-26 23:05:06 +01:00
parent 72a2ab39ba
commit 7df8e4fc0a
2 changed files with 19 additions and 2 deletions

4
NEWS
View File

@@ -12,7 +12,9 @@ PHP NEWS
- phpdbg:
. Fixed bug #76801 (too many open files). (alekitto)
. Fixed bug #77800 (phpdbg segfaults on listing some conditional breakpoints).
(krakjoe)
- Reflection:
. Fixed bug #77772 (ReflectionClass::getMethods(null) doesn't work). (Nikita)

View File

@@ -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;