[libvirt] leak? xenUnifiedOpen

Daniel P. Berrange berrange at redhat.com
Mon Jul 21 09:38:04 UTC 2008


On Mon, Jul 21, 2008 at 05:36:44AM -0400, Daniel Veillard wrote:
> On Mon, Jul 21, 2008 at 10:27:45AM +0100, Daniel P. Berrange wrote:
> > On Mon, Jul 21, 2008 at 04:52:24AM -0400, Daniel Veillard wrote:
> > > On Sun, Jul 20, 2008 at 10:49:39PM +0200, Stefan de Konink wrote:
> > > > ==5486== 184 bytes in 1 blocks are definitely lost in loss record 5 of 18
> > > > ==5486==    at 0x4C20111: calloc (vg_replace_malloc.c:397)
> > > > ==5486==    by 0x4E3ADFD: __virAlloc (memory.c:100)
> > > > ==5486==    by 0x4E4AF21: xenUnifiedOpen (xen_unified.c:264)
> > > > ==5486==    by 0x4E3A005: do_open (libvirt.c:777)
> > > > ==5486==    by 0x4009D7: main (in 
> > > > /home/skinkie/development/htdocs/cherokee/experiment)
> > > > 
> > > > 
> > > > Maybe valgrind is over active, because I see the free code at the close 
> > > > connection, and my own code is closing it...
> > > 
> > >   I can see a possibility, for example if xenUnifiedOpen is called
> > > multipl time on the same connection but the first time it exits on
> > > line 332 of xenUnifiedOpen(). That error exit leaves the routine
> > > without deallocating the priv block and conn->privateData is not
> > > set back to NULL.
> > 
> > Yes, we definitely need to free the 'priv' data  on line 332.
> 
>   I suggest the following

ACK.

> @@ -329,7 +329,8 @@ xenUnifiedOpen (virConnectPtr conn, xmlU
>              }
>  #else
>              DEBUG0("Handing off for remote driver");
> -            return VIR_DRV_OPEN_DECLINED; /* Let remote_driver try instead */
> +            ret = VIR_DRV_OPEN_DECLINED; /* Let remote_driver try instead */
> +	    goto clean;
>  #endif

Small whitespace bug there.

Daniel
-- 
|: Red Hat, Engineering, London   -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