]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix socket_putmessage_noblock() to call socket_putmessage() master github/master
authorMichael Paquier <michael@paquier.xyz>
Thu, 23 Jul 2026 07:48:40 +0000 (16:48 +0900)
committerMichael Paquier <michael@paquier.xyz>
Thu, 23 Jul 2026 07:48:40 +0000 (16:48 +0900)
socket_putmessage_noblock() used pq_putmessage(), which redirects to
PqCommMethods->putmessage.  In the common cases, this points to
socket_putmessage(), but it would become incorrect if PqCommMethods
points to a different implementation.

This change may look like a bug, but as far as I can see this is mostly
cosmetic.  The code is able to work currently, as the repalloc() done in
the noblock() call ensures that the blocking path of internal_putbytes()
is never reached.  The issue has gone unnoticed since 2bd9e412f92b.

Author: Anthonin Bonnefoy <anthonin.bonnefoy@datadoghq.com>
Reviewed-by: Fujii Masao <masao.fujii@gmail.com>
Discussion: https://postgr.es/m/CAO6_Xqpf5+Rzw_-XOOz-d-R5x6_2JHtpnzXP0nrYWiHyZokA_Q@mail.gmail.com

src/backend/libpq/pqcomm.c

index ee9a39107e6f57fa31e14c76602b177d6f5663f9..aaae7214f1344465e1212939aedc01eaef5dcac5 100644 (file)
@@ -1537,7 +1537,7 @@ socket_putmessage_noblock(char msgtype, const char *s, size_t len)
                PqSendBuffer = repalloc(PqSendBuffer, required);
                PqSendBufferSize = required;
        }
-       res = pq_putmessage(msgtype, s, len);
+       res = socket_putmessage(msgtype, s, len);
        Assert(res == 0);                       /* should not fail when the message fits in
                                                                 * buffer */
 }