mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-03-07 19:47:50 +08:00
isdigit() needs an unsigned char argument.
Per the C standard, the routine should be passed an int, with a value that's representable as an unsigned char or EOF. Passing a signed char is wrong, because a negative value is not representable as an unsigned char. Unfortunately no compiler warns about that.
This commit is contained in:
parent
94ae6ba74d
commit
a0c2fa9b5c
@ -511,7 +511,7 @@ parse_sane_timezone(struct pg_tm *tm, text *zone)
|
||||
* as invalid, it's enough to disallow having a digit in the first
|
||||
* position of our input string.
|
||||
*/
|
||||
if (isdigit(*tzname))
|
||||
if (isdigit((unsigned char) *tzname))
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||
errmsg("invalid input syntax for numeric time zone: \"%s\"",
|
||||
|
Loading…
Reference in New Issue
Block a user