mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
Fix crash if OOM occurs when creating virConnectPtr
If a OOM error occurs in virGetConnect, this may cause the virConnectDispose method to de-reference a NULL pointer, since the close callback will not have been initialized. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
182d5ed331
commit
f27490b705
@ -164,11 +164,13 @@ virConnectDispose(void *obj)
|
|||||||
|
|
||||||
virURIFree(conn->uri);
|
virURIFree(conn->uri);
|
||||||
|
|
||||||
virObjectLock(conn->closeCallback);
|
if (conn->closeCallback) {
|
||||||
conn->closeCallback->callback = NULL;
|
virObjectLock(conn->closeCallback);
|
||||||
virObjectUnlock(conn->closeCallback);
|
conn->closeCallback->callback = NULL;
|
||||||
|
virObjectUnlock(conn->closeCallback);
|
||||||
|
|
||||||
virObjectUnref(conn->closeCallback);
|
virObjectUnref(conn->closeCallback);
|
||||||
|
}
|
||||||
|
|
||||||
virMutexUnlock(&conn->lock);
|
virMutexUnlock(&conn->lock);
|
||||||
virMutexDestroy(&conn->lock);
|
virMutexDestroy(&conn->lock);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user