]> granicus.if.org Git - onig/commitdiff
re-fix #60 by check val_type
authorK.Kosako <kosako@sofnec.co.jp>
Thu, 15 Jun 2017 06:48:46 +0000 (15:48 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Thu, 15 Jun 2017 06:48:46 +0000 (15:48 +0900)
src/regparse.c

index a4e3d4acd5744a6a7bcd98d08306b9a78d9e6403..4f4802d69f3166ddcb8e7bb9eb28f0cdb6a897d8 100644 (file)
@@ -4061,9 +4061,7 @@ next_state_class(CClassNode* cc, OnigCodePoint* vs, enum CCVALTYPE* type,
     }
   }
 
-  if (*state != CCS_START)
-    *state = CCS_VALUE;
-
+  *state = CCS_VALUE;
   *type  = CCV_CLASS;
   return 0;
 }
@@ -4348,6 +4346,12 @@ parse_char_class(Node** np, OnigToken* tok, UChar** src, UChar* end,
           CC_ESC_WARN(env, (UChar* )"-");
           goto range_end_val;
         }
+
+        if (val_type == CCV_CLASS) {
+          r = ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS;
+          goto err;
+        }
+
         state = CCS_RANGE;
       }
       else if (state == CCS_START) {