]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemudDomainAttachSCSIDisk: avoid FP NULL-ptr-deref from clang
authorJim Meyering <meyering@redhat.com>
Wed, 7 Apr 2010 15:27:50 +0000 (17:27 +0200)
committerJim Meyering <meyering@redhat.com>
Wed, 14 Apr 2010 18:10:19 +0000 (20:10 +0200)
* src/qemu/qemu_driver.c (qemudDomainAttachSCSIDisk):
Initialize "cont" to NULL, so clang knows it's set.
Add an sa_assert so it knows it's non-NULL when dereferenced.

src/qemu/qemu_driver.c

index df1d4355b157feacafd2a72633a67e15dd0de7e1..f5cf1f153855b5fc91d0b43a918f5c5461ea82fe 100644 (file)
@@ -6851,7 +6851,7 @@ static int qemudDomainAttachSCSIDisk(struct qemud_driver *driver,
 {
     int i;
     qemuDomainObjPrivatePtr priv = vm->privateData;
-    virDomainControllerDefPtr cont;
+    virDomainControllerDefPtr cont = NULL;
     char *drivestr = NULL;
     char *devstr = NULL;
     int ret = -1;
@@ -6894,6 +6894,11 @@ static int qemudDomainAttachSCSIDisk(struct qemud_driver *driver,
             goto error;
     }
 
+    /* Tell clang that "cont" is non-NULL.
+       This is because disk->info.addr.driver.controller is unsigned,
+       and hence the above loop must iterate at least once.  */
+    sa_assert (cont);
+
     if (cont->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) {
         qemuReportError(VIR_ERR_INTERNAL_ERROR,
                         _("SCSI controller %d was missing its PCI address"), cont->idx);