]> granicus.if.org Git - onig/commitdiff
don't call onig_free() if onig_reg_init() is error
authorK.Kosako <kosako@sofnec.co.jp>
Fri, 20 Sep 2019 08:11:40 +0000 (17:11 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Fri, 20 Sep 2019 08:11:40 +0000 (17:11 +0900)
src/regcomp.c

index 2c00e0e14ef7858f3afd74113914874abce2db57..cd379a2739e10d5a23e40061466c970149082c69 100644 (file)
@@ -6785,11 +6785,14 @@ onig_new(regex_t** reg, const UChar* pattern, const UChar* pattern_end,
   if (IS_NULL(*reg)) return ONIGERR_MEMORY;
 
   r = onig_reg_init(*reg, option, ONIGENC_CASE_FOLD_DEFAULT, enc, syntax);
-  if (r != 0) goto err;
+  if (r != 0) {
+    xfree(*reg);
+    *reg = NULL;
+    return r;
+  }
 
   r = onig_compile(*reg, pattern, pattern_end, einfo);
   if (r != 0) {
-  err:
     onig_free(*reg);
     *reg = NULL;
   }