]> granicus.if.org Git - onig/commitdiff
fix memory leaks
authorK.Kosako <kosako@sofnec.co.jp>
Fri, 30 Jun 2017 01:25:31 +0000 (10:25 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Fri, 30 Jun 2017 01:25:31 +0000 (10:25 +0900)
src/regparse.c

index 5d057ef1cd0ce354a8ffc03d040624f1d6673fa0..b53f2bf8b712024103f586502b34031c98a3098c 100644 (file)
@@ -4433,7 +4433,7 @@ parse_char_class(Node** np, OnigToken* tok, UChar** src, UChar* end,
 
     case TK_CHAR_TYPE:
       r = add_ctype_to_cc(cc, tok->u.prop.ctype, tok->u.prop.not, env);
-      if (r != 0) return r;
+      if (r != 0) goto err;
 
     next_class:
       r = next_state_class(cc, &vs, &val_type, &state, env);
@@ -4443,9 +4443,12 @@ parse_char_class(Node** np, OnigToken* tok, UChar** src, UChar* end,
     case TK_CHAR_PROPERTY:
       {
         int ctype = fetch_char_property_to_ctype(&p, end, env);
-        if (ctype < 0) return ctype;
+        if (ctype < 0) {
+          r = ctype;
+          goto err;
+        }
         r = add_ctype_to_cc(cc, ctype, tok->u.prop.not, env);
-        if (r != 0) return r;
+        if (r != 0) goto err;
         goto next_class;
       }
       break;