mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-24 14:45:24 +00:00
remote: Don't leak priv->tls object on connection failure
When testing SASL authentication over TLS with virsh -c qemu+tls:///system list --all I got this valgrind trace after entering wrong credentials: ==30540== 26,903 (88 direct, 26,815 indirect) bytes in 1 blocks are definitely lost in loss record 289 of 293 ==30540== at 0x4A081D4: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==30540== by 0x4C7379A: virAllocVar (viralloc.c:558) ==30540== by 0x4CBC178: virObjectNew (virobject.c:190) ==30540== by 0x4CBC329: virObjectLockableNew (virobject.c:216) ==30540== by 0x4E2D003: virNetTLSContextNew (virnettlscontext.c:719) ==30540== by 0x4E2DC3F: virNetTLSContextNewPath (virnettlscontext.c:930) ==30540== by 0x4E2DD5B: virNetTLSContextNewClientPath (virnettlscontext.c:957) ==30540== by 0x4DDB618: doRemoteOpen (remote_driver.c:627) ==30540== by 0x4DDC8BA: remoteConnectOpen (remote_driver.c:1031) ==30540== by 0x4D8595F: do_open (libvirt.c:1239) ==30540== by 0x4D863F3: virConnectOpenAuth (libvirt.c:1481) ==30540== by 0x12762B: vshReconnect (virsh.c:337) ==30540== by 0x12C9B0: vshInit (virsh.c:2470) ==30540== by 0x12E9A5: main (virsh.c:3338)
This commit is contained in:
parent
73a03e3063
commit
c7cdc9b01c
@ -910,6 +910,10 @@ doRemoteOpen(virConnectPtr conn,
|
||||
virNetClientClose(priv->client);
|
||||
virObjectUnref(priv->client);
|
||||
priv->client = NULL;
|
||||
#ifdef WITH_GNUTLS
|
||||
virObjectUnref(priv->tls);
|
||||
priv->tls = NULL;
|
||||
#endif
|
||||
|
||||
VIR_FREE(priv->hostname);
|
||||
goto cleanup;
|
||||
|
Loading…
Reference in New Issue
Block a user