Don’t crash when undefining handle of active format
authorFather Chrysostomos <sprout@cpan.org>
Sun, 5 Aug 2012 20:13:12 +0000 (13:13 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Sun, 5 Aug 2012 23:02:17 +0000 (16:02 -0700)
commitc782dc1db597b30ceb55455cfa926e7c4b620944
treea45d8c5acae501c9867d1dde611488ad7a557490
parentf922571b226d9a59e677b263d6fda481db5611c4
Don’t crash when undefining handle of active format

format FOO =
@
undef *STDOUT
.
$~ = FOO;
write

Commit 7ef822cddfe9 began the work by putting in a null check and a
goto (to bypass the top format), but the goto wentto some code that
lacked the null check.  (It did actually fix the case of a IO with no
ofp, but not the case of a GV with no IO.)  Interestingly, it added a
bad_ofp label, but did not add the code to goto it (an oversight?).

The unused bad_ofp label was commented out in commit 9cbac4c72b52.

There was already a check before 7ef822cddfe9 to see whether there was
an ofp, but only after the format scope has been popped.

This commit extends that check by making sure there is an io first.

It removes the commented-out bad_ofp label.
pp_sys.c
t/op/write.t