diff options
author | thompsa <thompsa@FreeBSD.org> | 2009-09-28 07:39:51 +0000 |
---|---|---|
committer | thompsa <thompsa@FreeBSD.org> | 2009-09-28 07:39:51 +0000 |
commit | 430f344730b48c1213603f2a383884990004e2fc (patch) | |
tree | ddb06edb8f6df10e67980c3230824fec0bbc3570 /sys/dev/usb/usb_device.c | |
parent | af97dcb8231ffda8ed52afef72ebab5a7164a23f (diff) | |
download | FreeBSD-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.c | 4 |
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; |