diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/iconv/iconv.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c index ed46234077..9f4c23b435 100644 --- a/ext/iconv/iconv.c +++ b/ext/iconv/iconv.c @@ -380,8 +380,11 @@ iconv_convert(iconv_t cd, VALUE str, int start, int length, int toidx, struct ic length = 0; else if ((length -= start) < 0) length = 0; - else + else { inptr += start; + if (length > slen) + length = slen; + } } instart = inptr; inlen = length; |