summaryrefslogtreecommitdiff
path: root/regcomp.c
diff options
context:
space:
mode:
authorDavid Mitchell <davem@iabyn.com>2010-01-22 12:57:27 +0000
committerDavid Mitchell <davem@iabyn.com>2010-01-22 12:57:27 +0000
commit2628941b2d252f43f51dd0bcf09e95facb046886 (patch)
tree4824b88a487eb0688e8323d28cd86ac708c60a1d /regcomp.c
parent8082ad347d85cc7321629f754ef52c1279698c1d (diff)
downloadperl-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.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/regcomp.c b/regcomp.c
index 337f0c435a..10f97b93ea 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -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 ;