]> granicus.if.org Git - php/commitdiff
Fix segfault on invalid regex
authorHannes Magnusson <bjori@php.net>
Tue, 31 Oct 2006 23:57:29 +0000 (23:57 +0000)
committerHannes Magnusson <bjori@php.net>
Tue, 31 Oct 2006 23:57:29 +0000 (23:57 +0000)
ext/spl/spl_iterators.c

index ccda8aa96c9c3e00efdd473519c907d8de74e3de..a3d0687f81560216bab6b3d39de0b4230d587adc 100755 (executable)
@@ -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: