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 :|