summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sprintf.c2
-rw-r--r--test/ruby/test_sprintf.rb6
2 files changed, 7 insertions, 1 deletions
diff --git a/sprintf.c b/sprintf.c
index 52a7168dc9..9a08764448 100644
--- a/sprintf.c
+++ b/sprintf.c
@@ -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