From 57ec0834a1fdd759d942feba1568305853d77270 Mon Sep 17 00:00:00 2001 From: nagachika Date: Sat, 13 Jul 2013 14:25:36 +0000 Subject: merge revision(s) 41839,41841: * bignum.c (biglsh_bang): Fix bignum digits under-run. * bignum.c (bigrsh_bang): Fix bignum digits overrun. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@41944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- bignum.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'bignum.c') diff --git a/bignum.c b/bignum.c index 97557165b7..a9448ceab0 100644 --- a/bignum.c +++ b/bignum.c @@ -2335,11 +2335,11 @@ biglsh_bang(BDIGIT *xds, long xn, unsigned long shift) zds = xds + xn - 1; xn -= s1 + 1; num = xds[xn]<>s3; num = xds[xn]< 0); + assert(xds <= zds); *zds = num; for (i = s1; i > 0; --i) *zds-- = 0; @@ -2362,11 +2362,11 @@ bigrsh_bang(BDIGIT* xds, long xn, unsigned long shift) i = 0; zds = xds + s1; num = *zds++>>s2; - do { + while (i < xn - s1 - 1) { xds[i++] = (BDIGIT)(*zds<>s2; } - while (i < xn - s1 - 1); + assert(i < xn); xds[i] = num; MEMZERO(xds + xn - s1, BDIGIT, s1); } -- cgit v1.2.3