From 2ca6c3a16a4b83f9ff809e95778a5e9c330b6384 Mon Sep 17 00:00:00 2001 From: matz Date: Fri, 9 Sep 2005 13:15:16 +0000 Subject: * eval.c (rb_call0): prohibit calling tainted method (>2) when $SAFE == 0. * sprintf.c (rb_f_sprintf): warn "too many argument" on verbose mode (-v/-w); backported from 1.9. [ruby-dev:26963] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9108 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- sprintf.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'sprintf.c') diff --git a/sprintf.c b/sprintf.c index acfbf64d54..9f4d8e404c 100644 --- a/sprintf.c +++ b/sprintf.c @@ -771,11 +771,12 @@ rb_f_sprintf(argc, argv) } sprint_exit: - /* XXX - We cannot validiate the number of arguments because - * the format string may contain `n$'-style argument selector. + /* XXX - We cannot validiate the number of arguments if (digit)$ style used. */ - if (RTEST(ruby_debug) && posarg >= 0 && nextarg < argc) { - rb_raise(rb_eArgError, "too many arguments for format string"); + if (posarg >= 0 && nextarg < argc) { + const char *mesg = "too many arguments for format string"; + if (RTEST(ruby_debug)) rb_raise(rb_eArgError, mesg); + if (RTEST(ruby_verbose)) rb_warn(mesg); } rb_str_resize(result, blen); -- cgit v1.2.3