]> granicus.if.org Git - onig/commitdiff
fix to assign error code in make_absent_tree()
authorK.Kosako <kosako@sofnec.co.jp>
Mon, 21 Aug 2017 07:23:31 +0000 (16:23 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Mon, 21 Aug 2017 07:23:31 +0000 (16:23 +0900)
src/regparse.c

index a6db71d1864c2c2f38fae2a5a0a0f14697d10b69..43133f0d5bdf1baed92f6c9a2f8f0067a4e03831 100644 (file)
@@ -1969,7 +1969,7 @@ make_absent_tree(Node** node, Node* absent, Node* expr, int is_range_cutter,
     if (expr == NULL_NODE) {
       /* default expr \O* */
       quant = node_new_quantifier(0, REPEAT_INFINITE, 0);
-      if (IS_NULL(quant)) goto err;
+      if (IS_NULL(quant)) goto err0;
 
       r = node_new_true_anychar(&body, env);
       if (r != 0) {
@@ -2022,19 +2022,21 @@ make_absent_tree(Node** node, Node* absent, Node* expr, int is_range_cutter,
 
   if (is_range_cutter != 0) {
     x = make_list(4, ns);
-    if (IS_NULL(x)) goto err;
+    if (IS_NULL(x)) goto err0;
   }
   else {
     r = make_absent_tail(&ns[5], &ns[6], id1, env);
     if (r != 0) goto err;
   
     x = make_list(7, ns);
-    if (IS_NULL(x)) goto err;
+    if (IS_NULL(x)) goto err0;
   }
 
   *node = x;
   return ONIG_NORMAL;
 
+ err0:
+  r = ONIGERR_MEMORY;
  err:
   for (i = 0; i < 7; i++) onig_node_free(ns[i]);
   return r;