X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdata-io%2Fplacement-parser.c;h=671933382a534054816dc89c66e6892ed31a2475;hb=0fc606c52d7cec253af9b7463b15baabfbc9a33a;hp=d946d65de4085ebf426ac0dabd44b2139bbde3bd;hpb=afa696a4a7053cb763da8df33891abfe3fca1fe4;p=pspp diff --git a/src/language/data-io/placement-parser.c b/src/language/data-io/placement-parser.c index d946d65de4..671933382a 100644 --- a/src/language/data-io/placement-parser.c +++ b/src/language/data-io/placement-parser.c @@ -119,7 +119,7 @@ fixed_parse_columns (struct lexer *lexer, struct pool *pool, size_t var_cnt, int fc, lc; size_t i; - if ( !parse_column_range (lexer, 1, &fc, &lc, NULL) ) + if (!parse_column_range (lexer, 1, &fc, &lc, NULL)) return false; /* Divide columns evenly. */ @@ -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