aboutsummaryrefslogtreecommitdiff
path: root/hw/usb-bus.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2011-05-27 14:46:27 +0200
committerGerd Hoffmann <kraxel@redhat.com>2011-06-23 11:28:06 +0200
commitee210d6390761bb0fd6febe0fb8f94ee0dcba0db (patch)
tree7e345f264d62ca160cc021cef33de4066b9ff4c9 /hw/usb-bus.c
parentadddecb169c63913786dcf3a5879e89a300dbb20 (diff)
downloadqemu-ee210d6390761bb0fd6febe0fb8f94ee0dcba0db.zip
qemu-ee210d6390761bb0fd6febe0fb8f94ee0dcba0db.tar.gz
qemu-ee210d6390761bb0fd6febe0fb8f94ee0dcba0db.tar.bz2
usb-bus: Don't allow attaching a device to a bus with no free ports
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/usb-bus.c')
-rw-r--r--hw/usb-bus.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/hw/usb-bus.c b/hw/usb-bus.c
index 480956d..0a49921 100644
--- a/hw/usb-bus.c
+++ b/hw/usb-bus.c
@@ -181,6 +181,11 @@ static void do_attach(USBDevice *dev)
dev->product_desc);
return;
}
+ if (bus->nfree == 0) {
+ fprintf(stderr, "Warning: tried to attach usb device %s to a bus with no free ports\n",
+ dev->product_desc);
+ return;
+ }
if (dev->port_path) {
QTAILQ_FOREACH(port, &bus->free, next) {
if (strcmp(port->path, dev->port_path) == 0) {