diff options
| author | maya <maya@NetBSD.org> | 2017-01-20 02:22:42 +0000 |
|---|---|---|
| committer | maya <maya@NetBSD.org> | 2017-01-20 02:22:42 +0000 |
| commit | 7b7cc349d62c98beff89e651ee290cb7ca8f17fa (patch) | |
| tree | 00c4a69f513f04b0d6f4a1d05c27b5d14056d74b /sys | |
| parent | a0182bb21a59aaee7c75c7a1abd0cbc8a5f20a0d (diff) | |
kassert that we aren't overflowing the array.
this assert isn't expected to trigger due to current parameters used, but
to be sure, check.
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/dev/usb/ukbd.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/dev/usb/ukbd.c b/sys/dev/usb/ukbd.c index 23694a1b138..45acf0d6e67 100644 --- a/sys/dev/usb/ukbd.c +++ b/sys/dev/usb/ukbd.c @@ -1,4 +1,4 @@ -/* $NetBSD: ukbd.c,v 1.134 2016/11/25 12:50:13 skrll Exp $ */ +/* $NetBSD: ukbd.c,v 1.135 2017/01/20 02:22:42 maya Exp $ */ /* * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ukbd.c,v 1.134 2016/11/25 12:50:13 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ukbd.c,v 1.135 2017/01/20 02:22:42 maya Exp $"); #ifdef _KERNEL_OPT #include "opt_ddb.h" @@ -719,7 +719,10 @@ ukbd_decode(struct ukbd_softc *sc, struct ukbd_data *ud) int s; int nkeys, i, j; int key; -#define ADDKEY(c) ibuf[nkeys++] = (c) +#define ADDKEY(c) do { \ + KASSERT(nkeys < MAXKEYS); \ + ibuf[nkeys++] = (c); \ +} while (0) #ifdef UKBD_DEBUG /* |
