diff options
author | Hans de Goede <hdegoede@redhat.com> | 2011-05-31 11:35:22 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2011-06-14 12:56:49 +0200 |
commit | 130314f83dc43fc3cc2f431d8cfa1595209673fe (patch) | |
tree | f73d8f41f5a574ee17d607f74ac6114f7e33f90a /usb-linux.c | |
parent | 61c1117f08f4ed6f7e5cfa59cc9e02cf19c8f92d (diff) | |
download | qemu-130314f83dc43fc3cc2f431d8cfa1595209673fe.zip qemu-130314f83dc43fc3cc2f431d8cfa1595209673fe.tar.gz qemu-130314f83dc43fc3cc2f431d8cfa1595209673fe.tar.bz2 |
usb-linux: Ensure devep != 0
So that we don't index endp_table with a negative index.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'usb-linux.c')
-rw-r--r-- | usb-linux.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/usb-linux.c b/usb-linux.c index feb4d36..2e0495e 100644 --- a/usb-linux.c +++ b/usb-linux.c @@ -1029,6 +1029,11 @@ static int usb_linux_update_endp_table(USBHostDevice *s) } devep = descriptors[i + 2]; + if ((devep & 0x0f) == 0) { + fprintf(stderr, "usb-linux: invalid ep descriptor, ep == 0\n"); + return 1; + } + switch (descriptors[i + 3] & 0x3) { case 0x00: type = USBDEVFS_URB_TYPE_CONTROL; |