changeset 10999:7e353646d8a6

regex: fix glibc bug 697 2009-01-09 Paolo Bonzini <bonzini@gnu.org> * lib/regexec.c (prune_impossible_nodes): Handle sifted_states[0] being NULL also if there are no backreferences.
author Paolo Bonzini <bonzini@gnu.org>
date Fri, 09 Jan 2009 09:04:55 +0100
parents cc7a1af3872f
children 683b379e6760
files ChangeLog lib/regexec.c
diffstat 2 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-01-09  Paolo Bonzini  <bonzini@gnu.org>
+
+	regex: fix glibc bug 697
+	* lib/regexec.c (prune_impossible_nodes): Handle sifted_states[0]
+	being NULL also if there are no backreferences.
+
 2009-01-09  Paolo Bonzini  <bonzini@gnu.org>
 
 	regex: merge glibc changes
--- a/lib/regexec.c
+++ b/lib/regexec.c
@@ -1,6 +1,6 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation,
-   Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
@@ -1045,6 +1045,11 @@
       re_node_set_free (&sctx.limits);
       if (BE (ret != REG_NOERROR, 0))
 	goto free_return;
+      if (sifted_states[0] == NULL)
+	{
+	  ret = REG_NOMATCH;
+	  goto free_return;
+	}
     }
   re_free (mctx->state_log);
   mctx->state_log = sifted_states;