diff options
author | Stanislav Brabec <sbrabec@suse.cz> | 2012-02-28 16:16:45 +0100 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2012-02-28 16:16:45 +0100 |
commit | 71b5d1c5d5a7ca0f8c047b07e5507857fcd29f97 (patch) | |
tree | 4ba1f111e4f9077efd9842ead4203ae5e2ff46bb /posix/regex_internal.c | |
parent | 450bf206b4eba7e2288bc6c6e487f60e26165dce (diff) | |
download | glibc-71b5d1c5d5a7ca0f8c047b07e5507857fcd29f97.tar.gz glibc-71b5d1c5d5a7ca0f8c047b07e5507857fcd29f97.tar.xz glibc-71b5d1c5d5a7ca0f8c047b07e5507857fcd29f97.zip |
[BZ #13637]
* posix/regex_internal.c (re_string_skip_chars): Fix miscomputation of remain_len that may cause incomplete multi-byte character and false match. * posix/bug-regex33.c: New file. * posix/Makefile (tests): Add bug-regex33.
Diffstat (limited to 'posix/regex_internal.c')
-rw-r--r-- | posix/regex_internal.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/posix/regex_internal.c b/posix/regex_internal.c index b71eae4c9f..9be8a532e6 100644 --- a/posix/regex_internal.c +++ b/posix/regex_internal.c @@ -499,7 +499,7 @@ re_string_skip_chars (re_string_t *pstr, int new_raw_idx, wint_t *last_wc) rawbuf_idx < new_raw_idx;) { wchar_t wc2; - int remain_len = pstr->len - rawbuf_idx; + int remain_len = pstr->raw_len - rawbuf_idx; prev_st = pstr->cur_state; mbclen = __mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx, remain_len, &pstr->cur_state); |