[libvirt] [PATCH] Fix destroy command memory leaks

Daniel P. Berrange berrange at redhat.com
Tue May 20 12:03:38 UTC 2008


On Tue, May 20, 2008 at 10:48:27AM +0100, Richard W.M. Jones wrote:
> On Mon, May 19, 2008 at 05:30:33PM -0400, Cole Robinson wrote:
> > Some pieces of libvirt currently assume that the vir*Destroy
> > functions will free the passed object upon success. In
> > practice none of the current drivers seem to do this,
> > resulting in memory leaks.
> > 
> > The attached patch fixes the leaks I could find, as well as
> > changes the comments for virDomainDestroy and virNetworkDestroy
> > in libvirt.c to reflect reality. I also added a couple debug
> > statements to hash.c where domain reference counts can be
> > printed as they are changed.
> 
> For virDomainDestroy & virNetworkDestroy & virStoragePoolDestroy, I
> have code which assumes that these calls also free the C structure.
> AFAIK this has always been the supposedly correct behaviour of these
> calls.

No, the docs are wrong. Free'ing after destroy is not correct because the
object still exists in an active state and can be used.

> Maybe this was broken when Dan changed hash.c a while back?

I don't believe so. This has always been the behaviour AFAIR.
 
> Anyway the calls should be changed to do what they are supposed to do.

No change needed then :-)

Dan.
-- 
|: Red Hat, Engineering, Boston   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list