I hope that this is an acceptable solution. The race is caused by
referencing a disposed connection object in a callback.
In the first patch we make sure that the object reference count
is reflecting the callback registration.
The second patch prevents the invocation of a NULL callback.
The last one tries to ensure that we don't leak connection
references.
Viktor Mihajlovski (3):
libvirt: Increase connection reference count for callbacks
remote: Don't call NULL closeFreeCallback
virsh: Unregister the connection close notifier upon termination
src/libvirt.c | 5 +++++
src/remote/remote_driver.c | 3 ++-
tools/virsh.c | 23 +++++++++++++++++------
3 files changed, 24 insertions(+), 7 deletions(-)
--
1.7.9.5