summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--posix/regcomp.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 4c7aa2202b..16e026e7c2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-09-13  Aurelien Jarno  <aurelien@aurel32.net>
+
+	* posix/regcomp.c (lookup_collation_sequence_value): check that
+	nrules != 0 for multibyte chars.
+
 2007-09-23  Ulrich Drepper  <drepper@redhat.com>
 
 	* resolv/ns_print.c (ns_sprintrrf): Handle ns_t_a6 and ns_t_opt.
diff --git a/posix/regcomp.c b/posix/regcomp.c
index e99fd74924..129546c32c 100644
--- a/posix/regcomp.c
+++ b/posix/regcomp.c
@@ -2747,7 +2747,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
       return elem;
     }
 
-  /* Local function for parse_bracket_exp used in _LIBC environement.
+  /* Local function for parse_bracket_exp used in _LIBC environment.
      Look up the collation sequence value of BR_ELEM.
      Return the value if succeeded, UINT_MAX otherwise.  */
 
@@ -2771,7 +2771,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
 	}
       else if (br_elem->type == MB_CHAR)
 	{
-	  return __collseq_table_lookup (collseqwc, br_elem->opr.wch);
+	  if (nrules != 0)
+	    return __collseq_table_lookup (collseqwc, br_elem->opr.wch);
 	}
       else if (br_elem->type == COLL_SYM)
 	{