diff --git a/ChangeLog b/ChangeLog index 4c7aa2202b..16e026e7c2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-09-13 Aurelien Jarno + + * posix/regcomp.c (lookup_collation_sequence_value): check that + nrules != 0 for multibyte chars. + 2007-09-23 Ulrich Drepper * 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) {