diff options
-rw-r--r-- | sprintf.c | 2 | ||||
-rw-r--r-- | test/ruby/test_sprintf.rb | 6 |
2 files changed, 7 insertions, 1 deletions
@@ -120,7 +120,7 @@ sign_bits(int base, const char *p) #define GETASTER(val) do { \ t = p++; \ n = 0; \ - GETNUM(n, (val)); \ + GETNUM(n, val); \ if (*p == '$') { \ tmp = GETPOSARG(n); \ } \ diff --git a/test/ruby/test_sprintf.rb b/test/ruby/test_sprintf.rb index a57509f458..2a0fc487c1 100644 --- a/test/ruby/test_sprintf.rb +++ b/test/ruby/test_sprintf.rb @@ -309,6 +309,12 @@ class TestSprintf < Test::Unit::TestCase def test_star assert_equal("-1 ", sprintf("%*d", -3, -1)) + assert_raise_with_message(ArgumentError, /width too big/) { + sprintf("%*999999999999999999999999999999999999999999999999999999999999$d", 1) + } + assert_raise_with_message(ArgumentError, /prec too big/) { + sprintf("%.*999999999999999999999999999999999999999999999999999999999999$d", 1) + } end def test_escape |