cfi: check for inter overflow in cfi_devioctl
Reported by: Pietro Oliva Reviewed by: markj MFC after: 3 days Security: Possible OOB read in root-only ioctl Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
735c001b6b
commit
985d08fe52
@ -280,7 +280,8 @@ cfi_devioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag,
|
||||
rq = (struct cfiocqry *)data;
|
||||
if (rq->offset >= sc->sc_size / sc->sc_width)
|
||||
return (ESPIPE);
|
||||
if (rq->offset + rq->count > sc->sc_size / sc->sc_width)
|
||||
if (rq->offset > ULONG_MAX - rq->count ||
|
||||
rq->offset + rq->count > sc->sc_size / sc->sc_width)
|
||||
return (ENOSPC);
|
||||
|
||||
while (!error && rq->count--) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user