Message ID | 20220303160330.2979753-2-berrange@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | nbd: enable use of TLS on non-TCP transports and other TLS improvements | expand |
On Thu, Mar 03, 2022 at 04:03:19PM +0000, Daniel P. Berrangé wrote: > Currently the TLS session object assumes that the caller will always > provide a hostname when using x509 creds on a client endpoint. This > relies on the caller to detect and report an error if the user has > configured QEMU with x509 credentials on a UNIX socket. The migration > code has such a check, but it is too broad, reporting an error when > the user has configured QEMU with PSK credentials on a UNIX socket, > where hostnames are irrelevant. > > Putting the check into the TLS session object credentials validation > code ensures we report errors in only the scenario that matters. > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> > --- > crypto/tlssession.c | 6 ++++++ > 1 file changed, 6 insertions(+) Reviewed-by: Eric Blake <eblake@redhat.com>
diff --git a/crypto/tlssession.c b/crypto/tlssession.c index a8db8c76d1..b302d835d2 100644 --- a/crypto/tlssession.c +++ b/crypto/tlssession.c @@ -373,6 +373,12 @@ qcrypto_tls_session_check_certificate(QCryptoTLSSession *session, session->hostname); goto error; } + } else { + if (session->creds->endpoint == + QCRYPTO_TLS_CREDS_ENDPOINT_CLIENT) { + error_setg(errp, "No hostname for certificate validation"); + goto error; + } } }
Currently the TLS session object assumes that the caller will always provide a hostname when using x509 creds on a client endpoint. This relies on the caller to detect and report an error if the user has configured QEMU with x509 credentials on a UNIX socket. The migration code has such a check, but it is too broad, reporting an error when the user has configured QEMU with PSK credentials on a UNIX socket, where hostnames are irrelevant. Putting the check into the TLS session object credentials validation code ensures we report errors in only the scenario that matters. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- crypto/tlssession.c | 6 ++++++ 1 file changed, 6 insertions(+)