postgres.git / summary / log / commit / refs

commit    5d0800000ed5e4fb5ed010bb4b93f966e08b9fb3
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Wed Jul 02 19:47:59 2025 +0000
First released in: 17.6, 18.0

    Correctly copy the target host identification in PQcancelCreate.
    
    PQcancelCreate failed to copy struct pg_conn_host's "type" field,
    instead leaving it zero (a/k/a CHT_HOST_NAME).  This seemingly
    has no great ill effects if it should have been CHT_UNIX_SOCKET
    instead, but if it should have been CHT_HOST_ADDRESS then a
    null-pointer dereference will occur when the cancelConn is used.
    
    Bug: #18974
    Reported-by: Maxim Boguk <maxim.boguk@gmail.com>
    Author: Sergei Kornilov <sk@zsrv.org>
    Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
    Discussion: https://postgr.es/m/18974-575f02b2168b36b3@postgresql.org
    Backpatch-through: 17


src/interfaces/libpq/fe-cancel.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/interfaces/libpq/fe-cancel.c b/src/interfaces/libpq/fe-cancel.c index cd3102346bf..65517c5703b 100644 --- a/src/interfaces/libpq/fe-cancel.c +++ b/src/interfaces/libpq/fe-cancel.c @@ -137,6 +137,7 @@ PQcancelCreate(PGconn *conn) goto oom_error; originalHost = conn->connhost[conn->whichhost]; + cancelConn->connhost[0].type = originalHost.type; if (originalHost.host) { cancelConn->connhost[0].host = strdup(originalHost.host); [parent: 4938737d5452]