This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #123711] Fix crash with 0-5x-l{0}
authorFather Chrysostomos <sprout@cpan.org>
Sun, 1 Feb 2015 22:04:33 +0000 (14:04 -0800)
committerFather Chrysostomos <sprout@cpan.org>
Sun, 1 Feb 2015 22:25:16 +0000 (14:25 -0800)
commit83a85f49e265a458a481a9dc402dd3bdd30ae457
tree239e75fb9ca12d8fe462ae614bdd9ffaee6129c2
parent47fb2434438e67771e77bd3fb9733cd75cb7cf7d
[perl #123711] Fix crash with 0-5x-l{0}

perl-5.8.0-117-g6f33ba7, which added the XTERMORDORDOR hack, did not
change the leftbracket code to treat XTERMORDORDOR the same way as
XTERM, so -l {0} and getc {0} (among other ops) were treating {...} as
a block, rather than an anonymous hash.  This was not, however, being
turned into a real block with enter/leave ops to protect the stack,
so the nextstate op was corrupting the stack and possibly freeing mor-
tals in use.

This commit makes the leftbracket code check for XTERMORDORDOR and
treat it like XTERM, so that -l {0} once more creates an anonymous
hash.  There is really no way to get to that hash, though, so all I
can test for is the crash.
t/base/lex.t
toke.c