Browse Source

fix iconv buffer overflow converting to legacy JIS-based encodings

maintainer's notes:

commit a223dbd27ae36fe53f9f67f86caf685b729593fc added the reverse
conversions to JIS-based encodings, but omitted the check for remining
buffer space in the case where the next character to be written was
single-byte, allowing conversion to continue past the end of the
destination buffer.
Will Dietz 6 years ago
parent
commit
55a661ff5e
1 changed files with 1 additions and 0 deletions
  1. 1 0
      src/locale/iconv.c

+ 1 - 0
src/locale/iconv.c

@@ -539,6 +539,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri
 			if (*outb < 1) goto toobig;
 			if (c<256 && c==legacy_map(tomap, c)) {
 			revout:
+				if (*outb < 1) goto toobig;
 				*(*out)++ = c;
 				*outb -= 1;
 				break;