From e32da15f48189cfba02a9be2e6572161d91b3122 Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 9 Apr 1998 09:30:25 +0000 Subject: 1.1b9_09 pre git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- bignum.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'bignum.c') diff --git a/bignum.c b/bignum.c index 5e9b28c4ec..ac84ae410c 100644 --- a/bignum.c +++ b/bignum.c @@ -350,14 +350,17 @@ big2int(x) UINT len = RBIGNUM(x)->len; USHORT *ds; - if (len > sizeof(long)/sizeof(USHORT)) - ArgError("Bignum too big to convert into fixnum"); + if (len > sizeof(INT)/sizeof(USHORT)) + ArgError("bignum too big to convert into `int'"); ds = BDIGITS(x); num = 0; while (len--) { num = BIGUP(num); num += ds[len]; } + if ((INT)num < 0) { + ArgError("bignum too big to convert into `int'"); + } if (!RBIGNUM(x)->sign) return -num; return num; } -- cgit v1.2.3