]> granicus.if.org Git - postgresql/commitdiff
Fix thinkos from 4f4061b for libpq integer parsing
authorMichael Paquier <michael@paquier.xyz>
Wed, 23 Oct 2019 02:34:42 +0000 (11:34 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 23 Oct 2019 02:34:42 +0000 (11:34 +0900)
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

src/interfaces/libpq/fe-connect.c

index 9088c4cbce72ea5f272dc0766baaf05bdaadcb9e..84765a79fee8e767c0ec71eecca1b7c0b934f14c 100644 (file)
@@ -1663,6 +1663,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 */
@@ -1680,10 +1682,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;