summaryrefslogtreecommitdiff
path: root/doio.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2003-03-28 06:03:16 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2003-03-28 06:03:16 +0000
commit5c501b37d7fe83b36852f8ad910f17d67e792406 (patch)
treeb6e48ccf745571855cd54fdc28acd6df05e8200c /doio.c
parent6d80e9d0fed5aaa368313563b0a51ac19967da35 (diff)
downloadperl-5c501b37d7fe83b36852f8ad910f17d67e792406.tar.gz
Feeding illegal QP (like \x80) to this
./perl -Ilib -wne 'use PerlIO::via::QuotedPrint;BEGIN{binmode(STDIN, ":via(QuotedPrint)")};print' caused a coredump in av_length() <- nextargv() because the av was NULL. I don't know that returning Nullfp is the best thing to do, but it dodges the segfault and introduces no test failures. p4raw-id: //depot/perl@19077
Diffstat (limited to 'doio.c')
-rw-r--r--doio.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/doio.c b/doio.c
index a1cc42abf0..15983919ca 100644
--- a/doio.c
+++ b/doio.c
@@ -717,6 +717,8 @@ Perl_nextargv(pTHX_ register GV *gv)
#endif
}
PL_filemode = 0;
+ if (!GvAV(gv))
+ return Nullfp;
while (av_len(GvAV(gv)) >= 0) {
STRLEN oldlen;
sv = av_shift(GvAV(gv));