mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
Fix leak of virStreamPtr object with callback added in fdstream impl
When adding a callback to an FD stream, we take an extra reference on the virStreamPtr instance. We forgot to registered a free function with the callback, so when the callback was removed, the extra reference held on virStreamPtr was not released. * src/fdstream.c: Use a free callback to release reference on virStreamPtr when removing callback
This commit is contained in:
parent
92fa2e58fd
commit
9f40b80ba8
@ -171,6 +171,13 @@ static void virFDStreamEvent(int watch ATTRIBUTE_UNUSED,
|
||||
}
|
||||
}
|
||||
|
||||
static void virFDStreamCallbackFree(void *opaque)
|
||||
{
|
||||
virStreamPtr st = opaque;
|
||||
virStreamFree(st);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
virFDStreamAddCallback(virStreamPtr st,
|
||||
int events,
|
||||
@ -198,7 +205,7 @@ virFDStreamAddCallback(virStreamPtr st,
|
||||
events,
|
||||
virFDStreamEvent,
|
||||
st,
|
||||
NULL)) < 0) {
|
||||
virFDStreamCallbackFree)) < 0) {
|
||||
streamsReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
"%s", _("cannot register file watch on stream"));
|
||||
goto cleanup;
|
||||
|
Loading…
x
Reference in New Issue
Block a user