diff --git a/ChangeLog b/ChangeLog index 43365c401f..7b9b116700 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Tue Jul 9 01:17:57 2013 Tanaka Akira + + * bignum.c (bigrsh_bang): Fix bignum digits overrun. + Tue Jul 9 00:46:22 2013 Tanaka Akira * bignum.c (biglsh_bang): Fix bignum digits under-run. diff --git a/bignum.c b/bignum.c index c93061d44f..5918cefb7e 100644 --- a/bignum.c +++ b/bignum.c @@ -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<>s2; } - while (i < xn - s1 - 1); + assert(i < xn); xds[i] = num; MEMZERO(xds + xn - s1, BDIGIT, s1); }