Fix error reporting of connect_timeout in libpq for value parsing
authorMichael Paquier <michael@paquier.xyz>
Mon, 21 Oct 2019 02:39:15 +0000 (11:39 +0900)
committerMichael Paquier <michael@paquier.xyz>
Mon, 21 Oct 2019 02:39:15 +0000 (11:39 +0900)
The logic was correctly detecting a parsing failure, but the parsing
error did not get reported back to the client properly.

Reported-by: Ed Morley
Author: Lars Kanis
Reviewed-by: Michael Paquier
Discussion: https://postgr.es/m/a9b4cbd7-4ecb-06b2-ebd7-1739bbff3217@greiz-reinsdorf.de
Backpatch-through: 12

src/interfaces/libpq/fe-connect.c

index e02564420c1c091ff602e9dce444e87ca3cabc9d..9af830321c3b61f6eed01454d2fc4e236857aec8 100644 (file)
@@ -2025,7 +2025,11 @@ connectDBComplete(PGconn *conn)
    {
        if (!parse_int_param(conn->connect_timeout, &timeout, conn,
                             "connect_timeout"))
+       {
+           /* mark the connection as bad to report the parsing failure */
+           conn->status = CONNECTION_BAD;
            return 0;
+       }
 
        if (timeout > 0)
        {