Fix crash in lexer due to integer overflow.
authorJohn Darrington <john@darrington.wattle.id.au>
Sun, 14 Apr 2019 14:57:42 +0000 (16:57 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Sun, 14 Apr 2019 14:57:42 +0000 (16:57 +0200)
Fixes bug #54684

src/language/data-io/placement-parser.c
tests/language/lexer/lexer.at

index ca6f491ee0b7727002523ddf451a18625481c5e2..d946d65de4085ebf426ac0dabd44b2139bbde3bd 100644 (file)
@@ -401,7 +401,7 @@ parse_record_placement (struct lexer *lexer, int *record, int *column)
     {
       if (lex_is_integer (lexer))
         {
     {
       if (lex_is_integer (lexer))
         {
-          if (lex_integer (lexer) <= *record)
+          if ((int) lex_integer (lexer) <= *record)
             {
               msg (SE, _("The record number specified, %ld, is at or "
                          "before the previous record, %d.  Data "
             {
               msg (SE, _("The record number specified, %ld, is at or "
                          "before the previous record, %d.  Data "
index 87ce344eacd4193785fbad5b8ad6bf96307427aa..c4fb4cf8299e35a76fee29325b8e6b993f0d4ba2 100644 (file)
Binary files a/tests/language/lexer/lexer.at and b/tests/language/lexer/lexer.at differ