]> granicus.if.org Git - onig/commitdiff
adjust PR #125
authorK.Kosako <kosako@sofnec.co.jp>
Tue, 9 Oct 2018 04:21:51 +0000 (13:21 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Tue, 9 Oct 2018 04:21:51 +0000 (13:21 +0900)
src/regexec.c
src/regparse.c

index 871e449e5e9acc5ca3ebd483c24cc8046bf34409..9a874fcd3ad0cda8a9a89b2b8b4169e8d14a3122 100644 (file)
@@ -4069,7 +4069,6 @@ slow_search_backward(OnigEncoding enc, UChar* target, UChar* target_end,
     s = ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, adjust_text, s);
 
   while (s >= text) {
-    if(IS_NULL(s))break;
     if (*s == *target) {
       p = s + 1;
       t = target + 1;
@@ -4273,7 +4272,6 @@ map_search_backward(OnigEncoding enc, UChar map[],
   const UChar *s = text_start;
 
   while (s >= text) {
-    if(IS_NULL(s))break;
     if (map[*s]) return (UChar* )s;
 
     s = onigenc_get_prev_char_head(enc, adjust_text, s);
@@ -4480,6 +4478,8 @@ backward_search_range(regex_t* reg, const UChar* str, const UChar* end,
 {
   UChar *p;
 
+  if (range == 0) goto fail;
+
   range += reg->dmin;
   p = s;
 
@@ -4829,6 +4829,8 @@ onig_search_with_param(regex_t* reg, const UChar* str, const UChar* end,
     }
   }
   else {  /* backward search */
+    if (range < str) goto mismatch;
+
     if (orig_start < end)
       orig_start += enclen(reg->enc, orig_start); /* is upper range */
 
@@ -4857,7 +4859,6 @@ onig_search_with_param(regex_t* reg, const UChar* str, const UChar* end,
             MATCH_AND_RETURN_CHECK(orig_start);
             s = prev;
           }
-          if(IS_NULL(s))break;
         } while (s >= range);
         goto mismatch;
       }
index c7106dda48a73b9f8e08c31071e2dd61780e0dec..cc4bb0489caffd8ec8d869ae3b48e40d4b3ae6fd 100644 (file)
@@ -1562,7 +1562,7 @@ onig_set_callout_of_name(OnigEncoding enc, OnigCalloutType callout_type,
   }
   for (i = arg_num - opt_arg_num, j = 0; i < arg_num; i++, j++) {
     if (fe->arg_types[i] == ONIG_TYPE_STRING) {
-      if(IS_NULL(opt_defaults))return ONIGERR_INVALID_ARGUMENT;
+      if (IS_NULL(opt_defaults)) return ONIGERR_INVALID_ARGUMENT;
       OnigValue* val = opt_defaults + j;
       UChar* ds = onigenc_strdup(enc, val->s.start, val->s.end);
       CHECK_NULL_RETURN_MEMERR(ds);