diff options
author | David Mitchell <davem@iabyn.com> | 2010-01-22 12:57:27 +0000 |
---|---|---|
committer | David Mitchell <davem@iabyn.com> | 2010-01-22 12:57:27 +0000 |
commit | 2628941b2d252f43f51dd0bcf09e95facb046886 (patch) | |
tree | 4824b88a487eb0688e8323d28cd86ac708c60a1d /regcomp.c | |
parent | 8082ad347d85cc7321629f754ef52c1279698c1d (diff) | |
download | perl-2628941b2d252f43f51dd0bcf09e95facb046886.tar.gz |
fix SEGV in /\N{...}/
A simple program like the following could coredump:
use charnames ':full';
/\N{LATIN SMALL LETTER E}/;
The moral being, make sure sp is synced on return from call_sv()
*before* using the stack!
(Was a regression since 5.10)
Diffstat (limited to 'regcomp.c')
-rw-r--r-- | regcomp.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -6734,13 +6734,13 @@ S_reg_namedseq(pTHX_ RExC_state_t *pRExC_state, UV *valuep, I32 *flagp) PUTBACK ; count= call_sv(cv, G_SCALAR); + SPAGAIN ; if (count == 1) { /* XXXX is this right? dmq */ sv_str = POPs; SvREFCNT_inc_simple_void(sv_str); } - SPAGAIN ; PUTBACK ; FREETMPS ; LEAVE ; |