cvs: php-src /ext/spl spl_iterators.c
| From: | Hannes Magnusson | Date: | Tue, 31 Oct 2006 23:57:30 +0000 |
| Subject: | cvs: php-src /ext/spl spl_iterators.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-41272@lists.php.net to get a copy of this message | ||
bjori Tue Oct 31 23:57:30 2006 UTC
Modified files:
/php-src/ext/spl spl_iterators.c
Log:
Fix segfault on invalid regex
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_iterators.c?r1=1.150&r2=1.151&diff_format=u
Index: php-src/ext/spl/spl_iterators.c
diff -u php-src/ext/spl/spl_iterators.c:1.150 php-src/ext/spl/spl_iterators.c:1.151
--- php-src/ext/spl/spl_iterators.c:1.150 Tue Sep 19 07:39:07 2006
+++ php-src/ext/spl/spl_iterators.c Tue Oct 31 23:57:29 2006
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_iterators.c,v 1.150 2006/09/19 07:39:07 dmitry Exp $ */
+/* $Id: spl_iterators.c,v 1.151 2006/10/31 23:57:29 bjori Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -1021,8 +1021,13 @@
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: