Han, Weidong wrote:
Device assignment command is like "-pcidevice host=xx:yy.z".
Check bus:dev.func length to make sure its format is xx:yy.z.
Signed-off-by: Weidong Han <[email protected]>
---
qemu/hw/device-assignment.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/qemu/hw/device-assignment.c b/qemu/hw/device-assignment.c
index cef7c8a..50a0d5c 100644
--- a/qemu/hw/device-assignment.c
+++ b/qemu/hw/device-assignment.c
@@ -1196,7 +1196,7 @@ out:
AssignedDevInfo *add_assigned_device(const char *arg)
{
char *cp, *cp1;
- char device[8];
+ char device[9];
char dma[6];
int r;
AssignedDevInfo *adev;
@@ -1207,6 +1207,9 @@ AssignedDevInfo *add_assigned_device(const char *arg)
return NULL;
}
r = get_param_value(device, sizeof(device), "host", arg);
+ /* b:d.f format: xx:yy.z */
+ if (r != 7)
+ goto bad;
r = get_param_value(adev->name, sizeof(adev->name), "name", arg);
if (!r)
snprintf(adev->name, sizeof(adev->name), "%s", device);
I suggest replacing the parsing code with pci_parse_devaddr() (needs to
be extended to support functions) so that all the checking and parsing
is done in one place.
--
error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html