2fe9312 network: Don't crash on domain destroy

Authored and Committed by mprivozn 7 years ago
    network: Don't crash on domain destroy
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1434882
    
    Imagine the following scenario:
    
    1) virsh net-start default
    2) virsh start myFavouriteDomain
    3) virsh net-destroy default
    4) virsh destroy myFavouriteDomain
    
    (assuming myFavouriteDomain has an interface from default
    network)
    
    Regardless of how unlikely this scenario looks like, we should
    not crash. The problem is, on net-destroy in
    networkShutdownNetworkVirtual() the virMacMap module is unrefed,
    but the stale pointer is kept around. Thus when the domain
    destroy procedure comes in, networkReleaseActualDevice() and
    subsequently networkMacMgrDel() is called. This function sees the
    stale pointer and starts calling the virMacMap module APIs which
    work over freed memory.
    
    Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
    
        
file modified
+2 -1