mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-07-31 14:07:16 +00:00
qemudDomainAttachSCSIDisk: avoid FP NULL-ptr-deref from clang
* 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.
This commit is contained in:
parent
6e2f811443
commit
a0dc452172
@ -6851,7 +6851,7 @@ static int qemudDomainAttachSCSIDisk(struct qemud_driver *driver,
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
qemuDomainObjPrivatePtr priv = vm->privateData;
|
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||||
virDomainControllerDefPtr cont;
|
virDomainControllerDefPtr cont = NULL;
|
||||||
char *drivestr = NULL;
|
char *drivestr = NULL;
|
||||||
char *devstr = NULL;
|
char *devstr = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
@ -6894,6 +6894,11 @@ static int qemudDomainAttachSCSIDisk(struct qemud_driver *driver,
|
|||||||
goto error;
|
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) {
|
if (cont->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) {
|
||||||
qemuReportError(VIR_ERR_INTERNAL_ERROR,
|
qemuReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("SCSI controller %d was missing its PCI address"), cont->idx);
|
_("SCSI controller %d was missing its PCI address"), cont->idx);
|
||||||
|
Loading…
Reference in New Issue
Block a user