From d9c61f95c659cb4975dbba57d2acdfe15a136702 Mon Sep 17 00:00:00 2001 From: Hannes Magnusson Date: Tue, 31 Oct 2006 23:57:29 +0000 Subject: [PATCH] Fix segfault on invalid regex --- ext/spl/spl_iterators.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c index ccda8aa96c..a3d0687f81 100755 --- a/ext/spl/spl_iterators.c +++ b/ext/spl/spl_iterators.c @@ -1021,8 +1021,13 @@ static spl_dual_it_object* spl_dual_it_construct(INTERNAL_FUNCTION_PARAMETERS, z intern->u.regex.mode = mode; intern->u.regex.regex = estrndup(regex, regex_len); intern->u.regex.pce = pcre_get_compiled_regex_cache(regex, regex_len TSRMLS_CC); + if(intern->u.regex.pce == NULL) { + /* pcre_get_compiled_regex_cache has already sent error */ + php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC); + return NULL; + } intern->u.regex.pce->refcount++; - break;; + break; } #endif default: -- 2.40.0