[ 16216]
Fix weird warnings and/pr segfaults on binmode(,"encoding(...)")
- if encoding loads Encode then stack grows.
- pp_binmode was not allowing for that to happen
- added PUTBACK/SPAGAIN.
p4raw-link: @16216 on //depot/perlio:
adb5c314284816e1c92cd8e29c9033c3ce18b580
p4raw-id: //depot/perl@16220
p4raw-integrated: from //depot/perlio@16219 'copy in' pp_sys.c
(@16064..)
RETPUSHUNDEF;
}
+ PUTBACK;
if (PerlIO_binmode(aTHX_ fp,IoTYPE(io),mode_from_discipline(discp),
- (discp) ? SvPV_nolen(discp) : Nullch))
+ (discp) ? SvPV_nolen(discp) : Nullch)) {
+ SPAGAIN;
RETPUSHYES;
- else
+ }
+ else {
+ SPAGAIN;
RETPUSHUNDEF;
+ }
}
PP(pp_tie)
TAINT_ENV();
while (++MARK <= SP) {
(void)SvPV_nolen(*MARK); /* stringify for taint check */
- if (PL_tainted)
+ if (PL_tainted)
break;
}
MARK = ORIGMARK;
TAINT_ENV();
while (++MARK <= SP) {
(void)SvPV_nolen(*MARK); /* stringify for taint check */
- if (PL_tainted)
+ if (PL_tainted)
break;
}
MARK = ORIGMARK;