[PATCH 04/10] rpc: don't unref service ref on socket behalf twice
Daniel P. Berrangé
berrange at redhat.com
Tue Jul 21 15:36:31 UTC 2020
On Tue, Jul 14, 2020 at 12:32:55PM +0300, Nikolay Shirokovskiy wrote:
> Second unref was added in [1]. We don't need it actually as
> we pass free callback to virNetSocketAddIOCallback thus
> when we call virNetSocketRemoveIOCallback the extra ref for
> callback will be dropped without extra efforts.
Oh, so this is actually fixing unref of free'd memory. Surprised we
don't crash in this already.
>
> [1] 355d8f470f9: virNetServerServiceClose: Don't leak sockets
> ---
> src/rpc/virnetserverservice.c | 1 -
> 1 file changed, 1 deletion(-)
Reviewed-by: Daniel P. Berrangé <berrange at redhat.com>
> diff --git a/src/rpc/virnetserverservice.c b/src/rpc/virnetserverservice.c
> index 9d5df45..e4165ea 100644
> --- a/src/rpc/virnetserverservice.c
> +++ b/src/rpc/virnetserverservice.c
> @@ -449,6 +449,5 @@ void virNetServerServiceClose(virNetServerServicePtr svc)
> for (i = 0; i < svc->nsocks; i++) {
> virNetSocketRemoveIOCallback(svc->socks[i]);
> virNetSocketClose(svc->socks[i]);
> - virObjectUnref(svc);
> }
> }
> --
> 1.8.3.1
>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
More information about the libvir-list
mailing list