Module Name: src Committed By: riastradh Date: Sun Mar 13 11:35:47 UTC 2022
Modified Files: src/sys/dev/hid: hid.c Log Message: hid: Avoid arithmetic overflow by rearranging inequalities. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/dev/hid/hid.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/hid/hid.c diff -u src/sys/dev/hid/hid.c:1.4 src/sys/dev/hid/hid.c:1.5 --- src/sys/dev/hid/hid.c:1.4 Wed Jan 1 09:40:17 2020 +++ src/sys/dev/hid/hid.c Sun Mar 13 11:35:47 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: hid.c,v 1.4 2020/01/01 09:40:17 maxv Exp $ */ +/* $NetBSD: hid.c,v 1.5 2022/03/13 11:35:47 riastradh Exp $ */ /* $FreeBSD: src/sys/dev/usb/hid.c,v 1.11 1999/11/17 22:33:39 n_hibma Exp $ */ /* @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: hid.c,v 1.4 2020/01/01 09:40:17 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hid.c,v 1.5 2022/03/13 11:35:47 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -150,7 +150,7 @@ hid_get_item(struct hid_data *s, struct for (;;) { p = s->p; - if (p + 1 > s->end) + if (s->end - p < 1) return 0; bSize = *p++; @@ -172,7 +172,7 @@ hid_get_item(struct hid_data *s, struct } data = p; - if (p + bSize > s->end) + if (bSize > s->end - p) return 0; p += bSize;