]> git.proxmox.com Git - mirror_qemu.git/commitdiff
crypto: Fix certificate file error handling crash bug
authorMarkus Armbruster <armbru@redhat.com>
Wed, 4 Dec 2019 09:36:08 +0000 (10:36 +0100)
committerMarkus Armbruster <armbru@redhat.com>
Wed, 18 Dec 2019 07:36:15 +0000 (08:36 +0100)
qcrypto_tls_creds_load_cert() passes uninitialized GError *gerr by
reference to g_file_get_contents().  When g_file_get_contents() fails,
it'll try to set a GError.  Unless @gerr is null by dumb luck, this
logs a ERROR_OVERWRITTEN_WARNING warning message and leaves @gerr
unchanged.  qcrypto_tls_creds_load_cert() then dereferences the
uninitialized @gerr.

Fix by initializing @gerr properly.

Fixes: 9a2fd4347c40321f5cbb4ab4220e759fcbf87d03
Cc: "Daniel P. Berrangé" <berrange@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20191204093625.14836-2-armbru@redhat.com>
Acked-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
crypto/tlscredsx509.c

index 01fc304e5d8d1a5e05b78f202064f35769ade824..53a4368f497108ea2e4760a772b142e74d2a2f73 100644 (file)
@@ -380,7 +380,7 @@ qcrypto_tls_creds_load_cert(QCryptoTLSCredsX509 *creds,
     gnutls_x509_crt_t cert = NULL;
     g_autofree char *buf = NULL;
     gsize buflen;
-    GError *gerr;
+    GError *gerr = NULL;
     int ret = -1;
     int err;