From 8c01a3765e2e76364d366d5aebf06477a4c0ad2d Mon Sep 17 00:00:00 2001 From: mame Date: Sat, 17 Oct 2009 08:31:07 +0000 Subject: * bignum.c (big_split): fix off-by-one error. [ruby-dev:39501] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ bignum.c | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 07b188317b..0c4314ba59 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sat Oct 17 17:30:06 2009 Yusuke Endoh + + * bignum.c (big_split): fix off-by-one error. [ruby-dev:39501] + Sat Oct 17 16:34:27 2009 Tanaka Akira * parse.y (parser_yylex): fix token even after trailing under score. diff --git a/bignum.c b/bignum.c index 44775ff7f1..df66d33667 100644 --- a/bignum.c +++ b/bignum.c @@ -1848,13 +1848,13 @@ big_split(VALUE v, long n, volatile VALUE *ph, volatile VALUE *pl) while (--hn && !vds[hn + ln]); h = bignew(hn += 2, 1); - MEMCPY(BDIGITS(h), vds + ln, BDIGIT, hn); - BDIGITS(h)[hn - 1] = 0; + MEMCPY(BDIGITS(h), vds + ln, BDIGIT, hn - 1); + BDIGITS(h)[hn - 1] = 0; /* margin for carry */ while (--ln && !vds[ln]); l = bignew(ln += 2, 1); - MEMCPY(BDIGITS(l), vds, BDIGIT, ln); - BDIGITS(l)[ln - 1] = 0; + MEMCPY(BDIGITS(l), vds, BDIGIT, ln - 1); + BDIGITS(l)[ln - 1] = 0; /* margin for carry */ *pl = l; *ph = h; -- cgit v1.2.3