mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Don't dump core if pq_comm_reset() is called before pq_init().
This can happen if an error occurs in a standalone backend. This bug
was introduced by commit 2bd9e412f9
.
Reported by Álvaro Herrera.
This commit is contained in:
@ -105,9 +105,6 @@ char *Unix_socket_group;
|
|||||||
/* Where the Unix socket files are (list of palloc'd strings) */
|
/* Where the Unix socket files are (list of palloc'd strings) */
|
||||||
static List *sock_paths = NIL;
|
static List *sock_paths = NIL;
|
||||||
|
|
||||||
PQcommMethods *PqCommMethods;
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Buffers for low-level I/O.
|
* 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);
|
static int Setup_AF_UNIX(char *sock_path);
|
||||||
#endif /* HAVE_UNIX_SOCKETS */
|
#endif /* HAVE_UNIX_SOCKETS */
|
||||||
|
|
||||||
PQcommMethods PQcommSocketMethods;
|
|
||||||
|
|
||||||
static PQcommMethods PqCommSocketMethods = {
|
static PQcommMethods PqCommSocketMethods = {
|
||||||
socket_comm_reset,
|
socket_comm_reset,
|
||||||
socket_flush,
|
socket_flush,
|
||||||
@ -167,6 +162,9 @@ static PQcommMethods PqCommSocketMethods = {
|
|||||||
socket_endcopyout
|
socket_endcopyout
|
||||||
};
|
};
|
||||||
|
|
||||||
|
PQcommMethods *PqCommMethods = &PqCommSocketMethods;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* --------------------------------
|
/* --------------------------------
|
||||||
* pq_init - initialize libpq at backend startup
|
* pq_init - initialize libpq at backend startup
|
||||||
@ -175,7 +173,6 @@ static PQcommMethods PqCommSocketMethods = {
|
|||||||
void
|
void
|
||||||
pq_init(void)
|
pq_init(void)
|
||||||
{
|
{
|
||||||
PqCommMethods = &PqCommSocketMethods;
|
|
||||||
PqSendBufferSize = PQ_SEND_BUFFER_SIZE;
|
PqSendBufferSize = PQ_SEND_BUFFER_SIZE;
|
||||||
PqSendBuffer = MemoryContextAlloc(TopMemoryContext, PqSendBufferSize);
|
PqSendBuffer = MemoryContextAlloc(TopMemoryContext, PqSendBufferSize);
|
||||||
PqSendPointer = PqSendStart = PqRecvPointer = PqRecvLength = 0;
|
PqSendPointer = PqSendStart = PqRecvPointer = PqRecvLength = 0;
|
||||||
|
Reference in New Issue
Block a user