[perl #82250] fix tainted (s)print format
authorDavid Mitchell <davem@iabyn.com>
Mon, 14 Mar 2011 16:04:59 +0000 (16:04 +0000)
committerDavid Mitchell <davem@iabyn.com>
Mon, 14 Mar 2011 16:31:25 +0000 (16:31 +0000)
commite06d98fb28fb93799939b64c5cd2d41f83060c81
tree933c857945a62c61ecdfb5461eb9c1b10c8fe79a
parent295c2f7d5349d9417307a84d22b5ba63d9a655ed
[perl #82250] fix tainted (s)print format

commit 20ee07fbbcfa6be9f90bb8e5474a4d69d7396617
introduced dieing in (s)printf when the format is tainted;
however it only worked when the format is part of an expression
(because TAINT_PROPER checks for PL_tainted being set).

Fix by doing TAINT_PROPER only after get magic has been done on the format
SV (which will set PL_tainted). This is done by moving the checks in
pp_sprintf and pp_prtf into do_sprintf() (which is called by the two pp
functions).
doop.c
pp.c
pp_sys.c
t/op/taint.t