diff options
author | mpi <mpi@openbsd.org> | 2015-03-31 13:38:27 +0000 |
---|---|---|
committer | mpi <mpi@openbsd.org> | 2015-03-31 13:38:27 +0000 |
commit | b5cd11a017711a0c099d75adda38fc37e2077dbe (patch) | |
tree | bdd69a9c7967b5495c3160b49f2fadc24cd7bbd3 /usr.sbin/usbdevs | |
parent | Nuke the OPENSSL_MAX_TLS1_2_CIPHER_LENGTH hack - this has to be enabled at (diff) | |
download | wireguard-openbsd-b5cd11a017711a0c099d75adda38fc37e2077dbe.tar.xz wireguard-openbsd-b5cd11a017711a0c099d75adda38fc37e2077dbe.zip |
Do not iterate past the size of the array.
Found by naddy@
Diffstat (limited to 'usr.sbin/usbdevs')
-rw-r--r-- | usr.sbin/usbdevs/usbdevs.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/usr.sbin/usbdevs/usbdevs.c b/usr.sbin/usbdevs/usbdevs.c index 6d4dbe0c9e8..7962dc22e5f 100644 --- a/usr.sbin/usbdevs/usbdevs.c +++ b/usr.sbin/usbdevs/usbdevs.c @@ -1,4 +1,4 @@ -/* $OpenBSD: usbdevs.c,v 1.23 2015/02/09 23:00:15 deraadt Exp $ */ +/* $OpenBSD: usbdevs.c,v 1.24 2015/03/31 13:38:27 mpi Exp $ */ /* $NetBSD: usbdevs.c,v 1.19 2002/02/21 00:34:31 christos Exp $ */ /* @@ -40,6 +40,10 @@ #include <errno.h> #include <dev/usb/usb.h> +#ifndef nitems +#define nitems(_a) (sizeof((_a)) / sizeof((_a)[0])) +#endif + #define USBDEV "/dev/usb" int verbose = 0; @@ -123,7 +127,7 @@ usbdev(int f, int a, int rec) } if (!rec) return; - for (p = 0; p < di.udi_nports; p++) { + for (p = 0; p < di.udi_nports && p < nitems(di.udi_ports); p++) { int s = di.udi_ports[p]; if (s >= USB_MAX_DEVICES) { |