aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--bignum.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5c0d63ac1f..6143316e46 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Aug 7 20:05:38 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (rb_big_odd_p): Check the bignum length.
+ (rb_big_even_p): Ditto.
+
Wed Aug 7 19:29:26 2013 Tanaka Akira <akr@fsij.org>
* bignum.c (dbl2big): A condition simplified.
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;