Fix thinkos from 4f4061b for libpq integer parsing

A check was redundant.  While on it, add an assertion to make sure that
the parsing routine is never called with a NULL input.  All the code
paths currently calling the parsing routine are careful with NULL inputs
already, but future callers may forget that.

Reported-by: Peter Eisentraut, Lars Kanis
Discussion: https://postgr.es/m/ec64956b-4597-56b6-c3db-457d15250fe4@2ndquadrant.com
Backpatch-through: 12
This commit is contained in:
Michael Paquier 2019-10-23 11:34:18 +09:00
parent e3db3f829f
commit 57379cd5ac
1 changed files with 4 additions and 2 deletions

View File

@ -1696,6 +1696,8 @@ parse_int_param(const char *value, int *result, PGconn *conn,
char *end;
long numval;
Assert(value != NULL);
*result = 0;
/* strtol(3) skips leading whitespaces */
@ -1713,10 +1715,10 @@ parse_int_param(const char *value, int *result, PGconn *conn,
* Skip any trailing whitespace; if anything but whitespace remains before
* the terminating character, fail
*/
while (*end && *end != '\0' && isspace((unsigned char) *end))
while (*end != '\0' && isspace((unsigned char) *end))
end++;
if (*end && *end != '\0')
if (*end != '\0')
goto error;
*result = numval;