|
|
Message-Id: <1380272082-13878-1-git-send-email-mforney@mforney.org>
Date: Fri, 27 Sep 2013 01:54:42 -0700
From: Michael Forney <mforney@...rney.org>
To: musl@...ts.openwall.com
Subject: [PATCH] mbsrtowcs: Fix bug when wn is a multiple of 4
If wn becomes 0 after processing a chunk of 4, mbsrtowcs currently
continues on, wrapping wn around to -1, causing the rest of the string
to be processed.
This resulted in buffer overruns if there was only space in ws for wn
wide characters.
---
Hi,
I found this bug while tracking down a SIGSEGV in bash when globbing a large
pattern.
src/multibyte/mbsrtowcs.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/multibyte/mbsrtowcs.c b/src/multibyte/mbsrtowcs.c
index b9bbc33..c5a30de 100644
--- a/src/multibyte/mbsrtowcs.c
+++ b/src/multibyte/mbsrtowcs.c
@@ -66,6 +66,7 @@ resume0:
*ws++ = *s++;
wn -= 4;
}
+ if (!wn) continue;
}
if (*s-1u < 0x7f) {
*ws++ = *s++;
--
1.8.4
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.