crypto: fix mistaken setting of Error in success code path
authorDaniel P. Berrange <berrange@redhat.com>
Wed, 18 Nov 2015 14:42:40 +0000 (14:42 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 18 Nov 2015 14:56:58 +0000 (14:56 +0000)
The qcrypto_tls_session_check_certificate() method was setting
an Error even when the ACL check suceeded. This didn't affect
the callers detection of errors because they relied on the
function return status, but this did cause a memory leak since
the caller would not free an Error they did not expect to be
set.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
crypto/tlssession.c

index ffc5c47..3735529 100644 (file)
@@ -304,9 +304,9 @@ qcrypto_tls_session_check_certificate(QCryptoTLSSession *session,
 
                 allow = qemu_acl_party_is_allowed(acl, session->peername);
 
-                error_setg(errp, "TLS x509 ACL check for %s is %s",
-                           session->peername, allow ? "allowed" : "denied");
                 if (!allow) {
+                    error_setg(errp, "TLS x509 ACL check for %s is denied",
+                               session->peername);
                     goto error;
                 }
             }