• J
    libxl: fix leaking libxlDomainObjPrivate · cda52dbf
    Jim Fehlig 提交于
    When libxl registers an FD with the libxl driver, the refcnt of the
    associated libxlDomainObjPrivate object is incremented. The refcnt
    is decremented when libxl deregisters the FD.  But some FDs are only
    deregistered when their libxl ctx is freed, which unfortunately is
    done in the libxlDomainObjPrivate dispose function.  With references
    held by the FDs, libxlDomainObjPrivate is never disposed.
    
    I added the ref/unref in FD registration/deregistration when adding
    the same in timer registration/deregistration.  For timers, this
    is a simple approach to ensuring the libxlDomainObjPrivate is not
    disposed prior to their expirtation, which libxl guarantees will
    occur.  It is not needed for FDs, and only causes
    libxlDomainObjPrivate to leak.
    
    This patch removes the reference on libxlDomainObjPrivate for FD
    registrations, but retains them for timer registrations.  Tested on
    the latest releases of Xen supported by the libxl driver:  4.2.3,
    4.3.1, and 4.4.0 RC3.
    Signed-off-by: NJim Fehlig <jfehlig@suse.com>
    cda52dbf
libxl_domain.c 13.6 KB