From: K.Kosako Date: Mon, 30 Sep 2019 03:27:50 +0000 (+0900) Subject: free regexes if onig_regset_new() fails X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c8daa153deecfa47d6575f33c0247f39a823a25f;p=onig free regexes if onig_regset_new() fails --- 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; }