Fix integer overflow in hotplug methods

The hotplug methods still had the qemuCmdFlags variable declared
as an int, instead of unsigned long long. This caused flag checks
to be incorrect for flags > 31

* src/qemu/qemu_driver.c: Fix integer overflow in hotplug
This commit is contained in:
Daniel P. Berrange 2010-05-26 13:34:45 +01:00
parent c444af1ac2
commit bbe29be9a8

View File

@ -7019,7 +7019,7 @@ error:
static int qemudDomainAttachPciDiskDevice(struct qemud_driver *driver, static int qemudDomainAttachPciDiskDevice(struct qemud_driver *driver,
virDomainObjPtr vm, virDomainObjPtr vm,
virDomainDiskDefPtr disk, virDomainDiskDefPtr disk,
int qemuCmdFlags) unsigned long long qemuCmdFlags)
{ {
int i, ret; int i, ret;
const char* type = virDomainDiskBusTypeToString(disk->bus); const char* type = virDomainDiskBusTypeToString(disk->bus);
@ -7114,7 +7114,7 @@ error:
static int qemudDomainAttachPciControllerDevice(struct qemud_driver *driver, static int qemudDomainAttachPciControllerDevice(struct qemud_driver *driver,
virDomainObjPtr vm, virDomainObjPtr vm,
virDomainControllerDefPtr controller, virDomainControllerDefPtr controller,
int qemuCmdFlags) unsigned long long qemuCmdFlags)
{ {
int i; int i;
int ret = -1; int ret = -1;
@ -7180,7 +7180,7 @@ static virDomainControllerDefPtr
qemuDomainFindOrCreateSCSIDiskController(struct qemud_driver *driver, qemuDomainFindOrCreateSCSIDiskController(struct qemud_driver *driver,
virDomainObjPtr vm, virDomainObjPtr vm,
int controller, int controller,
int qemuCmdFlags) unsigned long long qemuCmdFlags)
{ {
int i; int i;
virDomainControllerDefPtr cont; virDomainControllerDefPtr cont;
@ -7225,7 +7225,7 @@ qemuDomainFindOrCreateSCSIDiskController(struct qemud_driver *driver,
static int qemudDomainAttachSCSIDisk(struct qemud_driver *driver, static int qemudDomainAttachSCSIDisk(struct qemud_driver *driver,
virDomainObjPtr vm, virDomainObjPtr vm,
virDomainDiskDefPtr disk, virDomainDiskDefPtr disk,
int qemuCmdFlags) unsigned long long qemuCmdFlags)
{ {
int i; int i;
qemuDomainObjPrivatePtr priv = vm->privateData; qemuDomainObjPrivatePtr priv = vm->privateData;
@ -7341,7 +7341,7 @@ error:
static int qemudDomainAttachUsbMassstorageDevice(struct qemud_driver *driver, static int qemudDomainAttachUsbMassstorageDevice(struct qemud_driver *driver,
virDomainObjPtr vm, virDomainObjPtr vm,
virDomainDiskDefPtr disk, virDomainDiskDefPtr disk,
int qemuCmdFlags) unsigned long long qemuCmdFlags)
{ {
qemuDomainObjPrivatePtr priv = vm->privateData; qemuDomainObjPrivatePtr priv = vm->privateData;
int i, ret; int i, ret;
@ -7652,7 +7652,7 @@ no_memory:
static int qemudDomainAttachHostPciDevice(struct qemud_driver *driver, static int qemudDomainAttachHostPciDevice(struct qemud_driver *driver,
virDomainObjPtr vm, virDomainObjPtr vm,
virDomainHostdevDefPtr hostdev, virDomainHostdevDefPtr hostdev,
int qemuCmdFlags) unsigned long long qemuCmdFlags)
{ {
qemuDomainObjPrivatePtr priv = vm->privateData; qemuDomainObjPrivatePtr priv = vm->privateData;
pciDevice *pci; pciDevice *pci;
@ -7764,7 +7764,7 @@ error:
static int qemudDomainAttachHostUsbDevice(struct qemud_driver *driver, static int qemudDomainAttachHostUsbDevice(struct qemud_driver *driver,
virDomainObjPtr vm, virDomainObjPtr vm,
virDomainHostdevDefPtr hostdev, virDomainHostdevDefPtr hostdev,
int qemuCmdFlags) unsigned long long qemuCmdFlags)
{ {
int ret; int ret;
qemuDomainObjPrivatePtr priv = vm->privateData; qemuDomainObjPrivatePtr priv = vm->privateData;
@ -7808,7 +7808,7 @@ error:
static int qemudDomainAttachHostDevice(struct qemud_driver *driver, static int qemudDomainAttachHostDevice(struct qemud_driver *driver,
virDomainObjPtr vm, virDomainObjPtr vm,
virDomainHostdevDefPtr hostdev, virDomainHostdevDefPtr hostdev,
int qemuCmdFlags) unsigned long long qemuCmdFlags)
{ {
if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS) { if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS) {
qemuReportError(VIR_ERR_NO_SUPPORT, qemuReportError(VIR_ERR_NO_SUPPORT,