Save the popped cx->blk_eval.old_namesv before calling LEAVE
authorVincent Pit <perl@profvince.com>
Sun, 25 Apr 2010 15:53:28 +0000 (17:53 +0200)
committerVincent Pit <perl@profvince.com>
Mon, 26 Apr 2010 13:54:29 +0000 (15:54 +0200)
commitb6494f15360dad37166431634469607f3b8ff176
treee5229a79030509eae4da8c682eeedfdfff1bdced
parent8d66b3f930dc6d88b524d103e304308ae73a46e7
Save the popped cx->blk_eval.old_namesv before calling LEAVE

It's fine to still refer to cx members between POPEVAL and LEAVE, but there
are a few places where the namesv is read after LEAVE happens. This is bad
because LEAVE can call arbitrary code ; in particular, it can call a destructor
that does call_sv(cv, G_EVAL), in which case the old eval context cx gets
overwritten by the new one and cx->blk_eval.old_namesv points to garbage.
pp_ctl.c