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);
|
||||
|
||||
virObjectLock(conn->closeCallback);
|
||||
conn->closeCallback->callback = NULL;
|
||||
virObjectUnlock(conn->closeCallback);
|
||||
if (conn->closeCallback) {
|
||||
virObjectLock(conn->closeCallback);
|
||||
conn->closeCallback->callback = NULL;
|
||||
virObjectUnlock(conn->closeCallback);
|
||||
|
||||
virObjectUnref(conn->closeCallback);
|
||||
virObjectUnref(conn->closeCallback);
|
||||
}
|
||||
|
||||
virMutexUnlock(&conn->lock);
|
||||
virMutexDestroy(&conn->lock);
|
||||
|
Loading…
x
Reference in New Issue
Block a user