• J
    storage: Fix bugs in VIR_APPEND_ELEMENT series · ea10cd76
    John Ferlan 提交于
    From commit id 'd53bbfd1'
    
    Found one core and one possible memory leak. Core seen during local
    virt-test/tp_libvirt run for the vol_create_from test. The memory leak
    was seen by inspection during a review of all VIR_APPEND_ELEMENT changes
    
    In storage_backend_disk/virStorageBackendDiskMakeDataVol(), the 'vol'
    needs to be kept around since it's used later, so use the _COPY macro.
    This caused a segv in libvirtd:
    
    Program received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 0x7fffe87c3700 (LWP 6919)]
    virStorageBackendDiskMakeDataVol (vol=0x0, groups=0x7fffc8000d70, pool=0x7fffc8002460) at storage/storage_backend_disk.c:66
    66          if (vol->target.path == NULL) {
    
    In storage_backend_rbd/virStorageBackendRBDRefreshPool() there's a failure
    path where the 'vol' needs to go through virStorageVolDefFree() since it
    wouldn't be appended.
    ea10cd76
storage_backend_rbd.c 19.5 KB