aboutsummaryrefslogtreecommitdiff
path: root/src/multibyte
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2013-06-29 16:16:47 -0400
committerRich Felker <dalias@aerifal.cx>2013-06-29 16:16:47 -0400
commit4ca442157e381690202c3bcc102627d137fd0466 (patch)
tree188c5d6d3ee67ce5985c31b3614cdb2ab894d5d5 /src/multibyte
parent9b732fe51b814468a08c84d13238b4c83a42451a (diff)
downloadmusl-4ca442157e381690202c3bcc102627d137fd0466.zip
musl-4ca442157e381690202c3bcc102627d137fd0466.tar.gz
musl-4ca442157e381690202c3bcc102627d137fd0466.tar.bz2
fix failure of mbsrtowcs to record stop position when dest is full
Diffstat (limited to 'src/multibyte')
-rw-r--r--src/multibyte/mbsrtowcs.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/multibyte/mbsrtowcs.c b/src/multibyte/mbsrtowcs.c
index 75a493c..b9bbc33 100644
--- a/src/multibyte/mbsrtowcs.c
+++ b/src/multibyte/mbsrtowcs.c
@@ -54,7 +54,10 @@ resume0:
wn--;
c = 0;
} else for (;;) {
- if (!wn) return wn0;
+ if (!wn) {
+ *src = (const void *)s;
+ return wn0;
+ }
if (*s-1u < 0x7f && (uintptr_t)s%4 == 0) {
while (wn>=4 && !(( *(uint32_t*)s | *(uint32_t*)s-0x01010101) & 0x80808080)) {
*ws++ = *s++;