From: J William Piggott Date: Tue, 16 May 2017 19:05:55 +0000 (-0400) Subject: parse-date: use uintmax_t where appropriate X-Git-Tag: v2.31-rc1~285^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=07668cd1fa04d6e185cd71d11c010faea4486897;p=thirdparty%2Futil-linux.git parse-date: use uintmax_t where appropriate Reported-by: Ruediger Meier Influenced-by: gnulib 30784c4 Paul Eggert Signed-off-by: J William Piggott --- diff --git a/lib/parse-date.y b/lib/parse-date.y index b79b333e3f..a8f710cd8a 100644 --- a/lib/parse-date.y +++ b/lib/parse-date.y @@ -1061,7 +1061,7 @@ static int yylex (union YYSTYPE *lvalp, parser_control *pc) if (c_isdigit (c) || c == '-' || c == '+') { char const *p; int sign; - unsigned long int value; + uintmax_t value; if (c == '-' || c == '+') { sign = c == '-' ? -1 : 1; while (c = *++pc->input, c_isspace (c)) @@ -1073,21 +1073,21 @@ static int yylex (union YYSTYPE *lvalp, parser_control *pc) sign = 0; p = pc->input; for (value = 0; ; value *= 10) { - unsigned long int value1 = value + (c - '0'); + uintmax_t value1 = value + (c - '0'); if (value1 < value) return '?'; value = value1; c = *++p; if (! c_isdigit (c)) break; - if (ULONG_MAX / 10 < value) + if (UINTMAX_MAX / 10 < value) return '?'; } if ((c == '.' || c == ',') && c_isdigit (p[1])) { time_t s; int ns; int digits; - unsigned long int value1; + uintmax_t value1; /* Check for overflow when converting value to * time_t.