Fix for [perl #22759 insufficient format string checking];
Jarkko Hietaniemi [Wed, 2 Jul 2003 11:34:49 +0000 (11:34 +0000)]
using ewix makes no sense, assuming evix was intended,
no old tests fail; add the test case.

p4raw-id: //depot/perl@19931

sv.c
t/op/sprintf.t

diff --git a/sv.c b/sv.c
index b6d0920..69fbbaa 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -8668,7 +8668,7 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
                    vecsv = va_arg(*args, SV*);
                else
                    vecsv = (evix ? evix <= svmax : svix < svmax) ?
-                       svargs[ewix ? ewix-1 : svix++] : &PL_sv_undef;
+                       svargs[evix ? evix-1 : svix++] : &PL_sv_undef;
                dotstr = SvPVx(vecsv, dotstrlen);
                if (DO_UTF8(vecsv))
                    is_utf8 = TRUE;
index e767a78..60771a3 100755 (executable)
@@ -380,3 +380,4 @@ __END__
 >%*.*K %d<     >[13, 29, 76]<  >%*.*K 13 INVALID<
 >%4$K %d<      >[45, 67]<      >%4$K 45 INVALID<
 >%d %K %d<     >[23, 45]<      >23 %K 45 INVALID<
+>%*v*999\$d %d %d<     >[11, 22, 33]<  >%*v*999\$d 11 22 INVALID<