summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/wlan/if_run.c
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2014-01-31 22:42:26 +0000
committerhselasky <hselasky@FreeBSD.org>2014-01-31 22:42:26 +0000
commitf6bc13e38a04d44e80b04397316b246987e08d40 (patch)
tree25e758604f5db0de21c3317ad0abb4aad4cf4645 /sys/dev/usb/wlan/if_run.c
parent64b15ec174b0b7a8dd798f25c0299df5c577d2fa (diff)
downloadFreeBSD-src-f6bc13e38a04d44e80b04397316b246987e08d40.zip
FreeBSD-src-f6bc13e38a04d44e80b04397316b246987e08d40.tar.gz
Fix a range check for maximum transmit length. The existing code was
off by 4 bytes in one case. Approved by: kevlo @ MFC after: 2 weeks
Diffstat (limited to 'sys/dev/usb/wlan/if_run.c')
-rw-r--r--sys/dev/usb/wlan/if_run.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/sys/dev/usb/wlan/if_run.c b/sys/dev/usb/wlan/if_run.c
index 1256342..69a525c 100644
--- a/sys/dev/usb/wlan/if_run.c
+++ b/sys/dev/usb/wlan/if_run.c
@@ -3070,10 +3070,10 @@ tr_setup:
STAILQ_REMOVE_HEAD(&pq->tx_qh, next);
m = data->m;
- size = (sc->mac_ver == 0x5592) ?
- RUN_MAX_TXSZ + sizeof(uint32_t) : RUN_MAX_TXSZ;
+ size = (sc->mac_ver == 0x5592) ?
+ sizeof(data->desc) + sizeof(uint32_t) : sizeof(data->desc);
if ((m->m_pkthdr.len +
- sizeof(data->desc) + 3 + 8) > size) {
+ size + 3 + 8) > RUN_MAX_TXSZ) {
DPRINTF("data overflow, %u bytes\n",
m->m_pkthdr.len);
@@ -3085,8 +3085,6 @@ tr_setup:
}
pc = usbd_xfer_get_frame(xfer, 0);
- size = (sc->mac_ver == 0x5592) ?
- sizeof(data->desc) + sizeof(uint32_t) : sizeof(data->desc);
usbd_copy_in(pc, 0, &data->desc, size);
usbd_m_copy_in(pc, size, m, 0, m->m_pkthdr.len);
size += m->m_pkthdr.len;
OpenPOWER on IntegriCloud