From c8daa153deecfa47d6575f33c0247f39a823a25f Mon Sep 17 00:00:00 2001 From: "K.Kosako" Date: Mon, 30 Sep 2019 12:27:50 +0900 Subject: [PATCH] free regexes if onig_regset_new() fails --- harnesses/regset-harness.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/harnesses/regset-harness.c b/harnesses/regset-harness.c index 392587f..3275395 100644 --- a/harnesses/regset-harness.c +++ b/harnesses/regset-harness.c @@ -174,7 +174,13 @@ exec(OnigEncoding enc, OnigOptionType options, } r = onig_regset_new(&set, init_reg_num, regs); - if (r != 0) return -1; + if (r != 0) { + for (i = 0; i < init_reg_num; i++) { + onig_free(regs[i]); + } + onig_end(); + return -1; + } for (i = init_reg_num; i < reg_num; i++) { r = onig_new(®, pat[i], pat_end[i], @@ -202,6 +208,7 @@ exec(OnigEncoding enc, OnigOptionType options, r = onig_regset_add(set, reg); if (r != 0) { onig_regset_free(set); + onig_end(); fprintf(stdout, "ERROR: onig_regset_add(): %d\n", i); return r; } -- 2.50.1