diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-07-08 16:19:18 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-07-08 16:19:18 +0000 |
commit | fa1e85c9331d0761418ef4dca87d9a51f5849cfc (patch) | |
tree | 8ece9016abfdd9590600ca3826109ea1d9b1c8f7 /bignum.c | |
parent | 2db6f96cd0c06e18b592446cdc5bb684eb191caf (diff) | |
download | ruby-fa1e85c9331d0761418ef4dca87d9a51f5849cfc.tar.gz |
* bignum.c (bigrsh_bang): Fix bignum digits overrun.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41841 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'bignum.c')
-rw-r--r-- | bignum.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -4452,11 +4452,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++] = BIGLO(*zds<<s3) | num; num = *zds++>>s2; } - while (i < xn - s1 - 1); + assert(i < xn); xds[i] = num; MEMZERO(xds + xn - s1, BDIGIT, s1); } |