[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] regex: fix false multibyte matches in some regular expressions
From: |
Paul Eggert |
Subject: |
[PATCH] regex: fix false multibyte matches in some regular expressions |
Date: |
Fri, 24 Feb 2012 12:26:17 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20120131 Thunderbird/10.0 |
See <http://sourceware.org/bugzilla/show_bug.cgi?id=13637>
and <http://sourceware.org/ml/libc-alpha/2012-02/msg00521.html>.
* lib/regex_internal.c (re_string_skip_chars):
Fix miscomputation of remain_len that may cause incomplete
multi-byte character and false match.
---
ChangeLog | 9 +++++++++
lib/regex_internal.c | 2 +-
2 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 681d773..53680d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2012-02-24 Stanislav Brabec <address@hidden> (tiny change)
+
+ regex: fix false multibyte matches in some regular expressions
+ See <http://sourceware.org/bugzilla/show_bug.cgi?id=13637>
+ and <http://sourceware.org/ml/libc-alpha/2012-02/msg00521.html>.
+ * lib/regex_internal.c (re_string_skip_chars):
+ Fix miscomputation of remain_len that may cause incomplete
+ multi-byte character and false match.
+
2012-02-24 Jim Meyering <address@hidden>
maint.mk: tell sc_prohibit_strcmp to ding "0 == strcmp (...)", too
diff --git a/lib/regex_internal.c b/lib/regex_internal.c
index aa14033..7e8c1bc 100644
--- a/lib/regex_internal.c
+++ b/lib/regex_internal.c
@@ -498,7 +498,7 @@ re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx,
wint_t *last_wc)
rawbuf_idx < new_raw_idx;)
{
wchar_t wc2;
- Idx remain_len = pstr->len - rawbuf_idx;
+ Idx 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);
--
1.7.6.5
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH] regex: fix false multibyte matches in some regular expressions,
Paul Eggert <=