27 lines
827 B
Plaintext
27 lines
827 B
Plaintext
$OpenBSD: patch-lib_loop_wchar_h,v 1.4 2010/02/07 15:25:03 naddy Exp $
|
|
--- lib/loop_wchar.h.orig Sat Feb 6 15:02:22 2010
|
|
+++ lib/loop_wchar.h Sat Feb 6 15:02:28 2010
|
|
@@ -321,7 +321,8 @@ static size_t wchar_to_loop_convert (iconv_t icd,
|
|
size_t result = 0;
|
|
while (*inbytesleft > 0) {
|
|
size_t incount;
|
|
- for (incount = 1; incount <= *inbytesleft; incount++) {
|
|
+ for (incount = 1; ; ) {
|
|
+ /* Here incount <= *inbytesleft. */
|
|
char buf[BUF_SIZE];
|
|
const char* inptr = *inbuf;
|
|
size_t inleft = incount;
|
|
@@ -402,6 +403,12 @@ static size_t wchar_to_loop_convert (iconv_t icd,
|
|
result += res;
|
|
break;
|
|
}
|
|
+ }
|
|
+ incount++;
|
|
+ if (incount > *inbytesleft) {
|
|
+ /* Incomplete input. */
|
|
+ errno = EINVAL;
|
|
+ return -1;
|
|
}
|
|
}
|
|
}
|