summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--perlio.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/perlio.c b/perlio.c
index dcd2f668a5..91db1e1856 100644
--- a/perlio.c
+++ b/perlio.c
@@ -3323,10 +3323,11 @@ PerlIO_exportFILE(PerlIO * f, const char *mode)
stdio = PerlSIO_fdopen(PerlIO_fileno(f), mode);
if (stdio) {
PerlIOl *l = *f;
+ PerlIO *f2;
/* De-link any lower layers so new :stdio sticks */
*f = NULL;
- if ((f = PerlIO_push(aTHX_ f, &PerlIO_stdio, buf, Nullsv))) {
- PerlIOStdio *s = PerlIOSelf(f, PerlIOStdio);
+ if ((f2 = PerlIO_push(aTHX_ f, &PerlIO_stdio, buf, Nullsv))) {
+ PerlIOStdio *s = PerlIOSelf((f = f2), PerlIOStdio);
s->stdio = stdio;
/* Link previous lower layers under new one */
*PerlIONext(f) = l;