summaryrefslogtreecommitdiff
path: root/regparse.c
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-12 14:03:16 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-03-12 14:03:16 +0000
commit8d5353786ec15946036f22e510b9b193e1757970 (patch)
treeb95b2e23baab0ed9d5d7f878bcc379786e9909a2 /regparse.c
parent35c827a6056c8762aff29d4303cbe6131f338e5a (diff)
merge revision(s) 57660: [Backport #13234]
regparse.c: initialize return values * regparse.c (parse_char_class): initialize return values before depth limit check. returned values will be freed in callers regardless the error. [ruby-core:79624] [Bug #13234] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@57909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'regparse.c')
-rw-r--r--regparse.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/regparse.c b/regparse.c
index 204aa46ce9..0a3ed5228a 100644
--- a/regparse.c
+++ b/regparse.c
@@ -4570,11 +4570,11 @@ parse_char_class(Node** np, Node** asc_np, OnigToken* tok, UChar** src, UChar* e
enum CCVALTYPE val_type, in_type;
int val_israw, in_israw;
+ *np = *asc_np = NULL_NODE;
env->parse_depth++;
if (env->parse_depth > ParseDepthLimit)
return ONIGERR_PARSE_DEPTH_LIMIT_OVER;
prev_cc = asc_prev_cc = (CClassNode* )NULL;
- *np = *asc_np = NULL_NODE;
r = fetch_token_in_cc(tok, src, end, env);
if (r == TK_CHAR && tok->u.c == '^' && tok->escaped == 0) {
neg = 1;