char *outptr = (char *)chunk;
size_t outleft = sizeof(chunk);
- size_t ret = iconv(cd, &inptr, &inleft, &outptr, &outleft);
+ /* Cast the input buffer through void*: iconv() declares its second
+ argument as "char **" on most systems but "const char **" on some
+ (e.g. illumos), and void* converts to either without a warning. */
+ size_t ret = iconv(cd, (void *)&inptr, &inleft, &outptr, &outleft);
int err = errno;
in = inptr;
size_t outleft = (size_t)(outend - out);
/* When the whole string is converted, a final iconv() call with a
NULL input flushes any pending shift sequence (e.g. ISO-2022). */
- size_t ret = iconv(cd, flushing ? NULL : &inptr, &inleft, &out, &outleft);
+ /* See the note above on the void* cast of the iconv() input buffer. */
+ size_t ret = iconv(cd, flushing ? NULL : (void *)&inptr, &inleft, &out, &outleft);
if (!flushing) {
up = inptr;
}