diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c index 0920370854..31b17bc2a6 100644 --- a/src/interfaces/libpq/fe-exec.c +++ b/src/interfaces/libpq/fe-exec.c @@ -3829,6 +3829,8 @@ PQsetnonblocking(PGconn *conn, int arg) int PQisnonblocking(const PGconn *conn) { + if (!conn || conn->status == CONNECTION_BAD) + return false; return pqIsnonblocking(conn); } @@ -3848,6 +3850,8 @@ PQisthreadsafe(void) int PQflush(PGconn *conn) { + if (!conn || conn->status == CONNECTION_BAD) + return -1; return pqFlush(conn); } diff --git a/src/interfaces/libpq/fe-secure-openssl.c b/src/interfaces/libpq/fe-secure-openssl.c index 3725bf4d3e..5e59c9cc99 100644 --- a/src/interfaces/libpq/fe-secure-openssl.c +++ b/src/interfaces/libpq/fe-secure-openssl.c @@ -1806,7 +1806,7 @@ err: int PQdefaultSSLKeyPassHook_OpenSSL(char *buf, int size, PGconn *conn) { - if (conn->sslpassword) + if (conn && conn->sslpassword) { if (strlen(conn->sslpassword) + 1 > size) fprintf(stderr, libpq_gettext("WARNING: sslpassword truncated\n"));