diff options
author | Leon Timmermans <fawaka@gmail.com> | 2013-09-07 08:58:18 +0200 |
---|---|---|
committer | Ricardo Signes <rjbs@cpan.org> | 2013-12-21 15:48:42 -0500 |
commit | 5f7c362921e5d7cb19e88bcc48d482d6246efd37 (patch) | |
tree | 601a96b65c6f1cdd9ffe51730169ae9063ce0603 | |
parent | 4c4a7f8fbcb603c3f62d98ef89f48c87875c27e7 (diff) | |
download | perl-5f7c362921e5d7cb19e88bcc48d482d6246efd37.tar.gz |
Fix segfault in filehandle duplication
Previously PerlIOBase_dup didn't check if pushing the new layer succeeded
before (optionally) setting the utf8 flag. This could cause
segfaults-by-nullpointer.
(cherry picked from commit df8c7dee25da69fc88678b8949166e08fb686037)
-rw-r--r-- | perlio.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -2303,7 +2303,7 @@ PerlIOBase_dup(pTHX_ PerlIO *f, PerlIO *o, CLONE_PARAMS *param, int flags) if (self && self->Getarg) arg = (*self->Getarg)(aTHX_ o, param, flags); f = PerlIO_push(aTHX_ f, self, PerlIO_modestr(o,buf), arg); - if (PerlIOBase(o)->flags & PERLIO_F_UTF8) + if (f && PerlIOBase(o)->flags & PERLIO_F_UTF8) PerlIOBase(f)->flags |= PERLIO_F_UTF8; SvREFCNT_dec(arg); } |