From nobody Thu May 2 22:44:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1492766274593670.8461232224026; Fri, 21 Apr 2017 02:17:54 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 200907AE95; Fri, 21 Apr 2017 09:17:52 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9A45560F8B; Fri, 21 Apr 2017 09:17:51 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 5A24C18523D1; Fri, 21 Apr 2017 09:17:49 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v3L9Hl15009941 for ; Fri, 21 Apr 2017 05:17:47 -0400 Received: by smtp.corp.redhat.com (Postfix) id E783B7959F; Fri, 21 Apr 2017 09:17:47 +0000 (UTC) Received: from antique-work.brq.redhat.com (dhcp129-230.brq.redhat.com [10.34.129.230]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6CC5D795A5 for ; Fri, 21 Apr 2017 09:17:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 200907AE95 Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 200907AE95 From: Pavel Hrdina To: libvir-list@redhat.com Date: Fri, 21 Apr 2017 11:17:44 +0200 Message-Id: <42000bf7e554b3732a569db633824302d5ec2867.1492766243.git.phrdina@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH] util: check ifa_addr pointer before accessing its elements X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Fri, 21 Apr 2017 09:17:53 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Reported by Rafa=C5=82 Wojciechowski . Thread 1 (Thread 0x7f194b99d700 (LWP 5631)): 0 virNetDevGetifaddrsAddress (addr=3D0x7f194b99c7c0, ifname=3D0x7f193400e2= b0 "ovirtmgmt") at util/virnetdevip.c:738 1 virNetDevIPAddrGet (ifname=3D0x7f193400e2b0 "ovirtmgmt", addr=3Daddr@ent= ry=3D0x7f194b99c7c0) at util/virnetdevip.c:795 2 0x00007f19467800d6 in networkGetNetworkAddress (netname=3D, netaddr=3Dnetaddr@entry=3D0x7f1924013f18) at network/bridge_driver.c:4780 3 0x00007f193e43a33c in qemuProcessGraphicsSetupNetworkAddress (listenAddr= =3D0x7f19340f7650 "127.0.0.1", glisten=3D0x7f1924013f10) at qemu/qemu_proce= ss.c:4062 4 qemuProcessGraphicsSetupListen (vm=3D, graphics=3D0x7f192= 4014f10, cfg=3D0x7f1934119f00) at qemu/qemu_process.c:4133 5 qemuProcessSetupGraphics (flags=3D17, vm=3D0x7f19240155d0, driver=3D0x7f= 193411f1d0) at qemu/qemu_process.c:4196 6 qemuProcessPrepareDomain (conn=3Dconn@entry=3D0x7f192c00ab50, driver=3Dd= river@entry=3D0x7f193411f1d0, vm=3Dvm@entry=3D0x7f19240155d0, flags=3Dflags= @entry=3D17) at qemu/qemu_process.c:4969 7 0x00007f193e4417c0 in qemuProcessStart (conn=3Dconn@entry=3D0x7f192c00ab= 50, driver=3Ddriver@entry=3D0x7f193411f1d0, vm=3D0x7f19240155d0,asyncJob=3D= asyncJob@entry=3DQEMU_ASYNC_JOB_START, migrateFrom=3DmigrateFrom@entry=3D0x= 0, migrateFd=3DmigrateFd@entry=3D-1, migratePath=3DmigratePath@entry=3D0x0,= snapshot=3Dsnapshot@entry=3D0x0, vmop=3Dvmop@entry=3DVIR_NETDEV_VPORT_PROFI= LE_OP_CREATE, flags=3D17, flags@entry=3D1) at qemu/qemu_process.c:5553 Man page for getifaddrs also states that the "ifa_addr" may contain a null pointer which happens if there is an existing network interface on the host without IP address. Signed-off-by: Pavel Hrdina --- src/util/virnetdevip.c | 7 ++++++- src/util/virnetdevtap.c | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/util/virnetdevip.c b/src/util/virnetdevip.c index 726fa6c3e3..09925e1d74 100644 --- a/src/util/virnetdevip.c +++ b/src/util/virnetdevip.c @@ -902,10 +902,15 @@ virNetDevGetifaddrsAddress(const char *ifname, } =20 for (ifa =3D ifap; ifa; ifa =3D ifa->ifa_next) { - int family =3D ifa->ifa_addr->sa_family; + int family; =20 if (STRNEQ_NULLABLE(ifa->ifa_name, ifname)) continue; + + if (!ifa->ifa_addr) + continue; + family =3D ifa->ifa_addr->sa_family; + if (family !=3D AF_INET6 && family !=3D AF_INET) continue; =20 diff --git a/src/util/virnetdevtap.c b/src/util/virnetdevtap.c index 02ef7fd240..93002b9294 100644 --- a/src/util/virnetdevtap.c +++ b/src/util/virnetdevtap.c @@ -762,6 +762,9 @@ virNetDevTapInterfaceStats(const char *ifname, } =20 for (ifa =3D ifap; ifa; ifa =3D ifa->ifa_next) { + if (!ifa->ifa_addr) + continue; + if (ifa->ifa_addr->sa_family !=3D AF_LINK) continue; =20 --=20 2.12.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list