This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Don’t taint undef in reset
authorFather Chrysostomos <sprout@cpan.org>
Sun, 11 Aug 2013 20:43:57 +0000 (13:43 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Sun, 11 Aug 2013 20:43:57 +0000 (13:43 -0700)
commitfdfdd8f7d462f8cb478f5731a943346d70ef6e51
treecc50c1b4327ea8cd2a28ef2f48019628a1c36570
parent4a8374a642996ba607363ad1659472af37b02fb2
Don’t taint undef in reset

reset was tainting undef if the internal SV type happened to be SVt_PV
or higher.  This has got to have been a mistake.  Tainting undef or
what is known to be an empty string does not make sense, even in a
tainted expression.  Tainting it based on the internal type does not
make sense either, and results in inconsistencies in behaviour (taint
it if it *was* a string, even though it isn’t now, but not if it was a
number, unless that number was tied, or had pos() set, etc.).

This tainting has been here since perl 3.0 (commit a687059cb), which I
think was when tainting was introduced.

Applying the tainting based on the internal type has happened since
79072805bf6 (perl 5.0 alpha 2), which introduced different internal
SV types.
sv.c
t/op/taint.t