about summary refs log tree commit diff
diff options
context:
space:
mode:
-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 75a493c4..b9bbc33d 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++;