summaryrefslogtreecommitdiff
path: root/regparse.c
diff options
context:
space:
mode:
Diffstat (limited to 'regparse.c')
-rw-r--r--regparse.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/regparse.c b/regparse.c
index 33815f2445..6f1fbf8191 100644
--- a/regparse.c
+++ b/regparse.c
@@ -6682,7 +6682,10 @@ parse_subexp(Node** top, OnigToken* tok, int term,
headp = &(NCDR(*top));
while (r == TK_ALT) {
r = fetch_token(tok, src, end, env);
- if (r < 0) return r;
+ if (r < 0) {
+ onig_node_free(node);
+ return r;
+ }
r = parse_branch(&node, tok, term, src, end, env);
if (r < 0) {
onig_node_free(node);