From 9a946298338e4783fcc98e0896712fdf2b2bfd56 Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Thu, 4 Dec 2014 19:47:06 -0500 Subject: [PATCH] Don't dump core if pq_comm_reset() is called before pq_init(). MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This can happen if an error occurs in a standalone backend. This bug was introduced by commit 2bd9e412f92bc6a68f3e8bcb18e04955cc35001d. Reported by Álvaro Herrera. --- src/backend/libpq/pqcomm.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c index 74161970ab..a4abf3ab83 100644 --- a/src/backend/libpq/pqcomm.c +++ b/src/backend/libpq/pqcomm.c @@ -105,9 +105,6 @@ char *Unix_socket_group; /* Where the Unix socket files are (list of palloc'd strings) */ static List *sock_paths = NIL; -PQcommMethods *PqCommMethods; - - /* * Buffers for low-level I/O. * @@ -154,8 +151,6 @@ static int Lock_AF_UNIX(char *unixSocketDir, char *unixSocketPath); static int Setup_AF_UNIX(char *sock_path); #endif /* HAVE_UNIX_SOCKETS */ -PQcommMethods PQcommSocketMethods; - static PQcommMethods PqCommSocketMethods = { socket_comm_reset, socket_flush, @@ -167,6 +162,9 @@ static PQcommMethods PqCommSocketMethods = { socket_endcopyout }; +PQcommMethods *PqCommMethods = &PqCommSocketMethods; + + /* -------------------------------- * pq_init - initialize libpq at backend startup @@ -175,7 +173,6 @@ static PQcommMethods PqCommSocketMethods = { void pq_init(void) { - PqCommMethods = &PqCommSocketMethods; PqSendBufferSize = PQ_SEND_BUFFER_SIZE; PqSendBuffer = MemoryContextAlloc(TopMemoryContext, PqSendBufferSize); PqSendPointer = PqSendStart = PqRecvPointer = PqRecvLength = 0; -- 2.40.0