PERL_ARGS_ASSERT_DO_SPRINTF;
+ if (SvTAINTED(*sarg))
+ TAINT_PROPER(
+ (PL_op && PL_op->op_type < OP_max)
+ ? (PL_op->op_type == OP_PRTF)
+ ? "printf"
+ : PL_op_name[PL_op->op_type]
+ : "(unknown)"
+ );
SvUTF8_off(sv);
if (DO_UTF8(*sarg))
SvUTF8_on(sv);
dTARGET;
if (! SvTIED_mg((const SV *)keys, PERL_MAGIC_tied) ) {
- i = HvKEYS(keys);
+ i = HvUSEDKEYS(keys);
}
else {
i = 0;
RETURN;
}
- EXTEND(SP, HvKEYS(keys) * (dokeys + dovalues));
+ EXTEND(SP, HvUSEDKEYS(keys) * (dokeys + dovalues));
PUTBACK; /* hv_iternext and hv_iterval might clobber stack_sp */
while ((entry = hv_iternext(keys))) {