]> Kevux Git Server - fll/commitdiff
Bugfix: read overflows the per character scanning
authorKevin Day <thekevinday@gmail.com>
Fri, 26 Jun 2020 02:54:12 +0000 (21:54 -0500)
committerKevin Day <thekevinday@gmail.com>
Fri, 26 Jun 2020 02:54:12 +0000 (21:54 -0500)
There is a logic mistake where the buffer is incremented too many times before the next loop.
This results in skipping some of the characters in the file and if those skipped characters are part of a vocabulary and content, then it will not be detected.

level_0/f_iki/c/iki.c

index 15330316d702bfa69001f86c806e62cdd72eff7f..5762e42522ab67e12fed69dba9ec77970dbf6f95 100644 (file)
@@ -167,16 +167,7 @@ extern "C" {
             return status;
           }
 
-          if (status == F_false) {
-            status = f_utf_buffer_increment(*buffer, range, 1);
-            if (F_status_is_error(status)) {
-              f_macro_string_lengths_delete(status, delimits);
-              return status;
-            }
-
-            find_next = F_true;
-            break;
-          }
+          if (status == F_false) break;
         }
 
         status = f_utf_buffer_increment(*buffer, range, 1);
@@ -433,13 +424,6 @@ extern "C" {
         } // while
       }
       else {
-
-        status = f_utf_buffer_increment(*buffer, range, 1);
-        if (F_status_is_error(status)) {
-          f_macro_string_lengths_delete(status, delimits);
-          return status;
-        }
-
         vocabulary_delimited = F_false;
         find_next = F_true;
       }