• D
    libxl: avoid crashing if calling `virsh numatune' on inactive domain · 5904ba60
    Dario Faggioli 提交于
    by, in libxlDomainGetNumaParameters(), calling libxl_bitmap_init() as soon as
    possible, which avoids getting to 'cleanup:', where libxl_bitmap_dispose()
    happens, without having initialized the nodemap, and hence crashing after some
    invalid free()-s:
    
     # ./daemon/libvirtd -v
     *** Error in `/home/xen/libvirt.git/daemon/.libs/lt-libvirtd': munmap_chunk(): invalid pointer: 0x00007fdd42592666 ***
     ======= Backtrace: =========
     /lib64/libc.so.6(+0x7bbe7)[0x7fdd3f767be7]
     /lib64/libxenlight.so.4.3(libxl_bitmap_dispose+0xd)[0x7fdd2c88c045]
     /home/xen/libvirt.git/daemon/.libs/../../src/.libs/libvirt_driver_libxl.so(+0x12d26)[0x7fdd2caccd26]
     /home/xen/libvirt.git/src/.libs/libvirt.so.0(virDomainGetNumaParameters+0x15c)[0x7fdd4247898c]
     /home/xen/libvirt.git/daemon/.libs/lt-libvirtd(+0x1d9a2)[0x7fdd42ecc9a2]
     /home/xen/libvirt.git/src/.libs/libvirt.so.0(virNetServerProgramDispatch+0x3da)[0x7fdd424e9eaa]
     /home/xen/libvirt.git/src/.libs/libvirt.so.0(+0x1a6f38)[0x7fdd424e3f38]
     /home/xen/libvirt.git/src/.libs/libvirt.so.0(+0xa81e5)[0x7fdd423e51e5]
     /home/xen/libvirt.git/src/.libs/libvirt.so.0(+0xa783e)[0x7fdd423e483e]
     /lib64/libpthread.so.0(+0x7c53)[0x7fdd3febbc53]
     /lib64/libc.so.6(clone+0x6d)[0x7fdd3f7e1dbd]
    Signed-off-by: NDario Faggili <dario.faggioli@citrix.com>
    Cc: Jim Fehlig <jfehlig@suse.com>
    Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>
    (cherry picked from commit f9ee91d3)
    5904ba60
libxl_driver.c 123.3 KB