diff options
Diffstat (limited to 'src/interfaces/libpq/fe-secure-common.c')
-rw-r--r-- | src/interfaces/libpq/fe-secure-common.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/interfaces/libpq/fe-secure-common.c b/src/interfaces/libpq/fe-secure-common.c index 40203f3b642..b3f580f5950 100644 --- a/src/interfaces/libpq/fe-secure-common.c +++ b/src/interfaces/libpq/fe-secure-common.c @@ -88,10 +88,17 @@ pq_verify_peer_name_matches_certificate_name(PGconn *conn, { char *name; int result; - char *host = PQhost(conn); + char *host = conn->connhost[conn->whichhost].host; *store_name = NULL; + if (!(host && host[0] != '\0')) + { + printfPQExpBuffer(&conn->errorMessage, + libpq_gettext("host name must be specified\n")); + return -1; + } + /* * There is no guarantee the string returned from the certificate is * NULL-terminated, so make a copy that is. @@ -145,7 +152,7 @@ pq_verify_peer_name_matches_certificate_name(PGconn *conn, bool pq_verify_peer_name_matches_certificate(PGconn *conn) { - char *host = PQhost(conn); + char *host = conn->connhost[conn->whichhost].host; int rc; int names_examined = 0; char *first_name = NULL; |