Reject ioctl commands for FLSHGCHR and FLSHPCHR if the size is greater
than sc->areq. This is a bounds check to ensure we're not just cramming arbitrarily sized nonsense into the driver and overflowing the heap. PR: 209545 Submitted by: cturt@hardenedbsd.org MFC after: 2 weeks
This commit is contained in:
parent
0d0da76911
commit
6115013663
@ -3749,6 +3749,9 @@ flashcard(struct ifnet *ifp, struct aironet_ioctl *l_ioctl)
|
||||
return ENOBUFS;
|
||||
break;
|
||||
case AIROFLSHGCHR: /* Get char from aux */
|
||||
if (l_ioctl->len > sizeof(sc->areq)) {
|
||||
return -EINVAL;
|
||||
}
|
||||
AN_UNLOCK(sc);
|
||||
status = copyin(l_ioctl->data, &sc->areq, l_ioctl->len);
|
||||
AN_LOCK(sc);
|
||||
@ -3760,6 +3763,9 @@ flashcard(struct ifnet *ifp, struct aironet_ioctl *l_ioctl)
|
||||
else
|
||||
return -1;
|
||||
case AIROFLSHPCHR: /* Send char to card. */
|
||||
if (l_ioctl->len > sizeof(sc->areq)) {
|
||||
return -EINVAL;
|
||||
}
|
||||
AN_UNLOCK(sc);
|
||||
status = copyin(l_ioctl->data, &sc->areq, l_ioctl->len);
|
||||
AN_LOCK(sc);
|
||||
|
Loading…
Reference in New Issue
Block a user