This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi! The following patch seems to fix https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=109606 The problem is that only valid_len wchar_t's are meaningful in wcs array, while len can be much larger. valid_len covers complete characters (if mbrtowc during conversion returns -2, conversion stops and valid_len is not increased by the partial bytes, if it returns -1 or 0 then that char is stored into wcs (so it is not WEOF). 2003-11-10 Jakub Jelinek <jakub@redhat.com> * posix/regex_internal.h (re_string_char_size_at): Don't look beyond valid_len wide chars. --- libc/posix/regex_internal.h.jj 2003-09-23 17:03:01.000000000 +0200 +++ libc/posix/regex_internal.h 2003-11-10 14:44:13.000000000 +0100 @@ -702,7 +702,7 @@ re_string_char_size_at (pstr, idx) int byte_idx; if (MB_CUR_MAX == 1) return 1; - for (byte_idx = 1; idx + byte_idx < pstr->len; ++byte_idx) + for (byte_idx = 1; idx + byte_idx < pstr->valid_len; ++byte_idx) if (pstr->wcs[idx + byte_idx] != WEOF) break; return byte_idx; Jakub
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |