summaryrefslogtreecommitdiff
path: root/bignum.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-08-07 11:08:03 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-08-07 11:08:03 +0000
commitfe6273975eb7a8b8bbc48ef62dc74b7a1a8c10e8 (patch)
tree5d5592fc132f2af97ffab1c0e323c19c6d7e748b /bignum.c
parentff84827eb6022ed208fb21a8e41ba30dd713ea2f (diff)
* bignum.c (rb_big_odd_p): Check the bignum length.
(rb_big_even_p): Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'bignum.c')
-rw-r--r--bignum.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/bignum.c b/bignum.c
index d3c0f7747b..7a73a5c8e2 100644
--- a/bignum.c
+++ b/bignum.c
@@ -6559,7 +6559,7 @@ rb_big_size(VALUE big)
static VALUE
rb_big_odd_p(VALUE num)
{
- if (BDIGITS(num)[0] & 1) {
+ if (RBIGNUM_LEN(num) != 0 && BDIGITS(num)[0] & 1) {
return Qtrue;
}
return Qfalse;
@@ -6575,7 +6575,7 @@ rb_big_odd_p(VALUE num)
static VALUE
rb_big_even_p(VALUE num)
{
- if (BDIGITS(num)[0] & 1) {
+ if (RBIGNUM_LEN(num) != 0 && BDIGITS(num)[0] & 1) {
return Qfalse;
}
return Qtrue;