summaryrefslogtreecommitdiffstats
path: root/transcode.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-06 09:39:12 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-06 09:39:12 +0000
commit27b3354397c9e8b6ddffcd15c97b260dde60517a (patch)
treedd9a1b2feecc38b626d904b08ac11e8ca537d17f /transcode.c
parent4f4b5e4bd018f852fd8eeaf3f0aed2b522316780 (diff)
downloadruby-27b3354397c9e8b6ddffcd15c97b260dde60517a.tar.gz
ruby-27b3354397c9e8b6ddffcd15c97b260dde60517a.tar.xz
ruby-27b3354397c9e8b6ddffcd15c97b260dde60517a.zip
* transcode.c (allocate_converted_string): fix overflow condition.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'transcode.c')
-rw-r--r--transcode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/transcode.c b/transcode.c
index cc3fc53c7..ccb54dfff 100644
--- a/transcode.c
+++ b/transcode.c
@@ -1445,7 +1445,7 @@ allocate_converted_string(const char *sname, const char *dname,
res = rb_econv_convert(ec, &sp, str+len, &dp, dst_str+dst_bufsize, 0);
dst_len = dp - dst_str;
while (res == econv_destination_buffer_full) {
- if (dst_bufsize * 2 < dst_bufsize) {
+ if (SIZE_MAX/2 < dst_bufsize) {
goto fail;
}
dst_bufsize *= 2;