From: Paolo Bonzini Date: Fri, 9 Jan 2009 08:04:55 +0000 (+0100) Subject: regex: fix glibc bug 697 X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1e10bb16d57ed1dbea4fbaa70f9d0644e4808bf3;p=pspp regex: fix glibc bug 697 2009-01-09 Paolo Bonzini * lib/regexec.c (prune_impossible_nodes): Handle sifted_states[0] being NULL also if there are no backreferences. --- diff --git a/ChangeLog b/ChangeLog index 2059b03597..fe1f703c88 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-01-09 Paolo Bonzini + + 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 regex: merge glibc changes diff --git a/lib/regexec.c b/lib/regexec.c index 2afa5b3879..21a81669f2 100644 --- 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 . @@ -1045,6 +1045,11 @@ prune_impossible_nodes (re_match_context_t *mctx) 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;