Re: [perl #24248] taint propagation regression,
Rick Delaney [Wed, 5 Nov 2003 23:02:41 +0000 (18:02 -0500)]
         tests fail to spot this
Message-Id: <20031105230241.D13585@biff.bort.ca>

p4raw-id: //depot/perl@21674

pp_ctl.c
t/op/taint.t

index 37b0a20..8ce813c 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -59,6 +59,7 @@ PP(pp_regcreset)
     /* XXXX Should store the old value to allow for tie/overload - and
        restore in regcomp, where marked with XXXX. */
     PL_reginterp_cnt = 0;
+    TAINT_NOT;
     return NORMAL;
 }
 
index e7740fe..b27dcde 100755 (executable)
@@ -124,7 +124,7 @@ my $echo = "$Invoke_Perl $ECHO";
 
 my $TEST = catfile(curdir(), 'TEST');
 
-print "1..208\n";
+print "1..220\n";
 
 # First, let's make sure that Perl is checking the dangerous
 # environment variables. Maybe they aren't set yet, so we'll
@@ -993,3 +993,35 @@ else
     eval { system("lskdfj"); };
     test 208, $@ =~ /^%ENV is aliased to %nonmagicalenv while running with -T switch/;
 }
+{
+    # [perl #24248]
+    $TAINT =~ /(.*)/;
+    test 209, !tainted($1);
+    my $notaint = $1;
+    test 210, !tainted($notaint);
+
+    my $l;
+    $notaint =~ /($notaint)/;
+    $l = $1;
+    test 211, !tainted($1);
+    test 212, !tainted($l);
+    $notaint =~ /($TAINT)/;
+    $l = $1;
+    test 213, tainted($1);
+    test 214, tainted($l);
+
+    $TAINT =~ /($notaint)/;
+    $l = $1;
+    test 215, !tainted($1);
+    test 216, !tainted($l);
+    $TAINT =~ /($TAINT)/;
+    $l = $1;
+    test 217, tainted($1);
+    test 218, tainted($l);
+
+    my $r;
+    ($r = $TAINT) =~ /($notaint)/;
+    test 219, !tainted($1);
+    ($r = $TAINT) =~ /($TAINT)/;
+    test 220, tainted($1);
+}