From ae42a158b360555ba1541ffeb4dcded3dc323d23 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Mon, 3 Aug 2020 00:44:40 +0000 Subject: [PATCH] placement-parser: Properly handle LONG_MAX != INT_MAX. Also, delete spurious null bytes from the related test. The null bytes spurred a test failure on mingw although I am not sure why. --- src/language/data-io/placement-parser.c | 7 ++++--- tests/language/lexer/lexer.at | Bin 3523 -> 3522 bytes 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/language/data-io/placement-parser.c b/src/language/data-io/placement-parser.c index 443b9b5916..671933382a 100644 --- a/src/language/data-io/placement-parser.c +++ b/src/language/data-io/placement-parser.c @@ -401,16 +401,17 @@ parse_record_placement (struct lexer *lexer, int *record, int *column) { if (lex_is_integer (lexer)) { - if ((int) lex_integer (lexer) <= *record) + long n = lex_integer (lexer); + if (n <= *record || n > INT_MAX) { msg (SE, _("The record number specified, %ld, is at or " "before the previous record, %d. Data " "fields must be listed in order of " "increasing record number."), - lex_integer (lexer), *record); + n, *record); return false; } - *record = lex_integer (lexer); + *record = n; lex_get (lexer); } else diff --git a/tests/language/lexer/lexer.at b/tests/language/lexer/lexer.at index 879e08785f1d0eb395d333b078cea27fb278b276..25ced0d9ab199a4fd59a7935a419117aed9f4b3b 100644 GIT binary patch delta 14 VcmX>seMox4HXcU3%{zFw838M^1mFMw delta 15 WcmX>keOP+KHXbGhhRxe~xETR0&;+so -- 2.30.2