• C
    When doing the conversion to danpb's new memory API, a small bug was · a24b1d9e
    Chris Lalancette 提交于
    introduced into the qemudNetworkIfaceConnect() function.  In particular, there
    is a call:
    
        if (VIR_ALLOC_N(vm->tapfds, vm->ntapfds+2) < 0)
            goto no_memory;
    
    However, the tapfds structure is used to track *all* of the tap fds, and is
    called once for each network that is being attached to the domain.  VIR_ALLOC_N
    maps to calloc().  So the first network would work just fine, but if you had
    more than one network, subsequent calls to this function would blow away the
    stored fd's that were already there and fill them all in with zeros.  This
    causes multiple problems, from the qemu domains not starting properly to
    improper cleanup on shutdown.  The attached patch just changes the VIR_ALLOC_N()
    to a VIR_REALLOC_N(), and everything is happy again.
    Signed-off-by: NChris Lalancette <clalance@redhat.com>
    a24b1d9e
qemu_conf.c 138.2 KB