Change 16220 by jhi@alpha on 2002/04/27 16:27:18
Integrate perlio;
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.
Affected files ...
.... //depot/perl/pp_sys.c#303 integrate
Differences ...
==== //depot/perl/pp_sys.c#303 (text) ====
Index: perl/pp_sys.c
--- perl/pp_sys.c.~1~ Sat Apr 27 10:30:06 2002
+++ perl/pp_sys.c Sat Apr 27 10:30:06 2002
@@ -731,11 +731,16 @@
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)
@@ -4040,7 +4045,7 @@
TAINT_ENV();
while (++MARK <= SP) {
(void)SvPV_nolen(*MARK); /* stringify for taint check */
- if (PL_tainted)
+ if (PL_tainted)
break;
}
MARK = ORIGMARK;
@@ -4166,7 +4171,7 @@
TAINT_ENV();
while (++MARK <= SP) {
(void)SvPV_nolen(*MARK); /* stringify for taint check */
- if (PL_tainted)
+ if (PL_tainted)
break;
}
MARK = ORIGMARK;
End of Patch.