From c4b12333f770039fa4f189b3ac9ca015707836c3 Mon Sep 17 00:00:00 2001 From: akr Date: Tue, 11 Jun 2013 14:02:46 +0000 Subject: * bignum.c (validate_integer_pack_format): Refine error messages. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41233 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ bignum.c | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index ed984ca912..7b3353a50a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Tue Jun 11 23:01:57 2013 Tanaka Akira + + * bignum.c (validate_integer_pack_format): Refine error messages. + Tue Jun 11 22:25:04 2013 Tanaka Akira * bignum.c (validate_integer_pack_format): numwords argument added. diff --git a/bignum.c b/bignum.c index 8e7e44427d..3eb086c66e 100644 --- a/bignum.c +++ b/bignum.c @@ -739,10 +739,16 @@ validate_integer_pack_format(size_t numwords, size_t wordsize, size_t nails, int { int wordorder_bits = flags & INTEGER_PACK_WORDORDER_MASK; int byteorder_bits = flags & INTEGER_PACK_BYTEORDER_MASK; - if (wordorder_bits != INTEGER_PACK_MSWORD_FIRST && + if (wordorder_bits == 0) { + rb_raise(rb_eArgError, "word order not specified"); + } + else if (wordorder_bits != INTEGER_PACK_MSWORD_FIRST && wordorder_bits != INTEGER_PACK_LSWORD_FIRST) rb_raise(rb_eArgError, "unexpected word order"); - if (byteorder_bits != INTEGER_PACK_MSBYTE_FIRST && + if (byteorder_bits == 0) { + rb_raise(rb_eArgError, "byte order not specified"); + } + else if (byteorder_bits != INTEGER_PACK_MSBYTE_FIRST && byteorder_bits != INTEGER_PACK_LSBYTE_FIRST && byteorder_bits != INTEGER_PACK_NATIVE_BYTE_ORDER) rb_raise(rb_eArgError, "unexpected byte order"); -- cgit v1.2.3