[libvirt] [PATCH] util: netdev: Don't crash in virNetDevSetIPAddress if @peer is NULL

Andrea Bolognani abologna at redhat.com
Fri Apr 8 12:11:00 UTC 2016


On Fri, 2016-04-08 at 13:55 +0200, Peter Krempa wrote:
> VIR_SOCKET_ADDR_VALID dereferences the pointer, thus if we pass NULL
> into virNetDevSetIPAddress it crashes. Regression introduced by
> b3d069872ce53eb.
> 
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1325120
> ---
>  src/util/virnetdev.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
> index 712c3bc..0d030a3 100644
> --- a/src/util/virnetdev.c
> +++ b/src/util/virnetdev.c
> @@ -1129,7 +1129,7 @@ int virNetDevSetIPAddress(const char *ifname,
>      unsigned int recvbuflen;
> 
>      /* The caller needs to provide a correct address */
> -    if (VIR_SOCKET_ADDR_FAMILY(addr) == AF_INET && !VIR_SOCKET_ADDR_VALID(peer)) {
> +    if (VIR_SOCKET_ADDR_FAMILY(addr) == AF_INET && peer && !VIR_SOCKET_ADDR_VALID(peer)) {
>          /* compute a broadcast address if this is IPv4 */
>          if (VIR_ALLOC(broadcast) < 0)
>              return -1;

The other version of virNetDevSetIPAddress() starting on
line 1435 needs to be fixed in a similar fashion. Also,
doesn't 'addr' need to be checked as well?

I'd like to have all of these fixed in a single patch, but
this change is good even by itself so it's up to you :)

ACK

-- 
Andrea Bolognani
Software Engineer - Virtualization Team




More information about the libvir-list mailing list