libpq: If ALPN is not used, make PQsslAttribute(conn, "alpn") == ""

The documentation says that PQsslAttribute(conn, "alpn") returns an
empty string if ALPN is not used, but the code actually returned
NULL. Fix the code to match the documentation.

Reported-by: Michael Paquier
Discussion: https://www.postgresql.org/message-id/ZideNHji0G4gxmc3@paquier.xyz
pull/160/head
Heikki Linnakangas 1 year ago
parent 592a228372
commit 3c18409265
  1. 2
      src/bin/psql/command.c
  2. 2
      src/interfaces/libpq/fe-secure-openssl.c

@ -3896,7 +3896,7 @@ printSSLInfo(void)
protocol ? protocol : _("unknown"),
cipher ? cipher : _("unknown"),
(compression && strcmp(compression, "off") != 0) ? _("on") : _("off"),
alpn ? alpn : _("none"));
(alpn && alpn[0] != '\0') ? alpn : _("none"));
}
/*

@ -1837,7 +1837,7 @@ PQsslAttribute(PGconn *conn, const char *attribute_name)
SSL_get0_alpn_selected(conn->ssl, &data, &len);
if (data == NULL || len == 0 || len > sizeof(alpn_str) - 1)
return NULL;
return "";
memcpy(alpn_str, data, len);
alpn_str[len] = 0;
return alpn_str;

Loading…
Cancel
Save