From nobody Fri May 3 18:53:23 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 1495204750458900.0915740821556; Fri, 19 May 2017 07:39:10 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 85E207247C; Fri, 19 May 2017 14:39:08 +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 5F9195C7C3; Fri, 19 May 2017 14:39:08 +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 C3996180BAF4; Fri, 19 May 2017 14:39:07 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v4JEd7W9027032 for ; Fri, 19 May 2017 10:39:07 -0400 Received: by smtp.corp.redhat.com (Postfix) id 0659C7EBF0; Fri, 19 May 2017 14:39:07 +0000 (UTC) Received: from mx1.redhat.com (ext-mx05.extmail.prod.ext.phx2.redhat.com [10.5.110.29]) by smtp.corp.redhat.com (Postfix) with ESMTPS id F265B80E74 for ; Fri, 19 May 2017 14:39:05 +0000 (UTC) Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D5F6C3DFCD for ; Fri, 19 May 2017 14:39:03 +0000 (UTC) Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id v4JEd2QC022725 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 19 May 2017 14:39:03 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userv0021.oracle.com (8.14.4/8.14.4) with ESMTP id v4JEd2KF014761 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 19 May 2017 14:39:02 GMT Received: from abhmp0009.oracle.com (abhmp0009.oracle.com [141.146.116.15]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id v4JEd2ex030370; Fri, 19 May 2017 14:39:02 GMT Received: from nina.dynamic.ziggo.nl (/10.175.178.71) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 19 May 2017 07:39:01 -0700 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 85E207247C Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=oracle.com Authentication-Results: ext-mx09.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 85E207247C DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com D5F6C3DFCD Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=oracle.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=wim.ten.have@oracle.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com D5F6C3DFCD From: Wim Ten Have To: Libvirt Development List Date: Fri, 19 May 2017 16:38:43 +0200 Message-Id: <20170519143843.32371-2-wim.ten.have@oracle.com> In-Reply-To: <20170519143843.32371-1-wim.ten.have@oracle.com> References: <20170519143843.32371-1-wim.ten.have@oracle.com> X-Source-IP: userv0021.oracle.com [156.151.31.71] X-Greylist: Sender passed SPF test, Sender IP whitelisted by DNSRBL, ACL 203 matched, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 19 May 2017 14:39:04 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 19 May 2017 14:39:04 +0000 (UTC) for IP:'141.146.126.69' DOMAIN:'aserp1040.oracle.com' HELO:'aserp1040.oracle.com' FROM:'wim.ten.have@oracle.com' RCPT:'' X-RedHat-Spam-Score: -101.621 (BAYES_50, DCC_REPUT_13_19, RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, RP_MATCHES_RCVD, SPF_PASS, UNPARSEABLE_RELAY, USER_IN_WHITELIST) 141.146.126.69 aserp1040.oracle.com 141.146.126.69 aserp1040.oracle.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.29 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Cc: Wim ten Have Subject: [libvirt] [PATCH v2] xenconfig: fix handling of NULL disk source 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: , MIME-Version: 1.0 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.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Fri, 19 May 2017 14:39:09 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Wim ten Have It is possible to crash libvirtd when converting xl native config to domXML when the xl config contains an empty disk source, e.g. an empty CDROM. Fix by checking that the disk source is non-NULL before parsing it. Signed-off-by: Wim ten Have Reviewed-by: Jim Fehlig --- src/xenconfig/xen_xl.c | 4 ++++ tests/xlconfigdata/test-disk-positional-parms-partial.cfg | 2 +- tests/xlconfigdata/test-disk-positional-parms-partial.xml | 6 ++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/xenconfig/xen_xl.c b/src/xenconfig/xen_xl.c index 4f24d45..cac440c 100644 --- a/src/xenconfig/xen_xl.c +++ b/src/xenconfig/xen_xl.c @@ -316,6 +316,10 @@ xenParseXLDiskSrc(virDomainDiskDefPtr disk, char *srcs= tr) char *tmpstr =3D NULL; int ret =3D -1; =20 + /* A NULL source is valid, e.g. an empty CDROM */ + if (srcstr =3D=3D NULL) + return 0; + if (STRPREFIX(srcstr, "rbd:")) { if (!(tmpstr =3D virStringReplace(srcstr, "\\\\", "\\"))) goto cleanup; diff --git a/tests/xlconfigdata/test-disk-positional-parms-partial.cfg b/te= sts/xlconfigdata/test-disk-positional-parms-partial.cfg index fd16db0..940304e 100644 --- a/tests/xlconfigdata/test-disk-positional-parms-partial.cfg +++ b/tests/xlconfigdata/test-disk-positional-parms-partial.cfg @@ -22,4 +22,4 @@ parallel =3D "none" serial =3D "none" builder =3D "hvm" boot =3D "d" -disk =3D [ "/dev/HostVG/XenGuest2,,hda,,backendtype=3Dphy", "/var/lib/libv= irt/images/XenGuest2-home,,hdb,,", "/root/boot.iso,,hdc,,devtype=3Dcdrom" ] +disk =3D [ "/dev/HostVG/XenGuest2,,hda,,backendtype=3Dphy", "/var/lib/libv= irt/images/XenGuest2-home,,hdb,,", "/root/boot.iso,,hdc,,devtype=3Dcdrom" ,= "format=3Draw,vdev=3Dhdd,access=3Dro,devtype=3Dcdrom" ] diff --git a/tests/xlconfigdata/test-disk-positional-parms-partial.xml b/te= sts/xlconfigdata/test-disk-positional-parms-partial.xml index e86a5be..52b21dc 100644 --- a/tests/xlconfigdata/test-disk-positional-parms-partial.xml +++ b/tests/xlconfigdata/test-disk-positional-parms-partial.xml @@ -39,6 +39,12 @@
+ + + + +
+ --=20 2.9.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list