From a3510e33d33e52c7c7eceb6d12bb121ac0b36638 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Fri, 8 Apr 2016 13:51:57 +0200 Subject: [PATCH] util: netdev: Don't crash in virNetDevSetIPAddress if @peer is NULL 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 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c index 712c3bcc32..a505b6c0b6 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; @@ -1445,7 +1445,7 @@ int virNetDevSetIPAddress(const char *ifname, if (!(addrstr = virSocketAddrFormat(addr))) goto cleanup; - if (VIR_SOCKET_ADDR_VALID(peer) && !(peerstr = virSocketAddrFormat(peer))) + if (peer && VIR_SOCKET_ADDR_VALID(peer) && !(peerstr = virSocketAddrFormat(peer))) goto cleanup; /* format up a broadcast address if this is IPv4 */