summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/usb_device.c
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2009-09-28 07:39:51 +0000
committerthompsa <thompsa@FreeBSD.org>2009-09-28 07:39:51 +0000
commit430f344730b48c1213603f2a383884990004e2fc (patch)
treeddb06edb8f6df10e67980c3230824fec0bbc3570 /sys/dev/usb/usb_device.c
parentaf97dcb8231ffda8ed52afef72ebab5a7164a23f (diff)
downloadFreeBSD-src-430f344730b48c1213603f2a383884990004e2fc.zip
FreeBSD-src-430f344730b48c1213603f2a383884990004e2fc.tar.gz
Fix NULL-pointer dereference in usb_endpoint_foreach().
PR: usb/138389 Submitted by: Patroklos Argyroudis at census, inc
Diffstat (limited to 'sys/dev/usb/usb_device.c')
-rw-r--r--sys/dev/usb/usb_device.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/usb/usb_device.c b/sys/dev/usb/usb_device.c
index d286db0..ea864f4 100644
--- a/sys/dev/usb/usb_device.c
+++ b/sys/dev/usb/usb_device.c
@@ -367,12 +367,14 @@ usb_init_endpoint(struct usb_device *udev, uint8_t iface_index,
struct usb_endpoint *
usb_endpoint_foreach(struct usb_device *udev, struct usb_endpoint *ep)
{
- struct usb_endpoint *ep_end = udev->endpoints + udev->endpoints_max;
+ struct usb_endpoint *ep_end;
/* be NULL safe */
if (udev == NULL)
return (NULL);
+ ep_end = udev->endpoints + udev->endpoints_max;
+
/* get next endpoint */
if (ep == NULL)
ep = udev->endpoints;
OpenPOWER on IntegriCloud