> Index: src/sys/dev/usb/if_axe.c > =================================================================== > RCS file: /cvs/src/sys/dev/usb/if_axe.c,v > retrieving revision 1.105 > diff -u -p -r1.105 if_axe.c > --- src/sys/dev/usb/if_axe.c 25 Jan 2011 20:03:35 -0000 1.105 > +++ src/sys/dev/usb/if_axe.c 19 Mar 2011 17:45:08 -0000 > @@ -1018,7 +1018,9 @@ axe_rxeof(usbd_xfer_handle xfer, usbd_pr > > do { > if (sc->axe_flags & AX178 || sc->axe_flags & AX772) { > - if (total_len < sizeof(hdr)) { > + if (total_len < sizeof(hdr) || > + total_len > (sc->axe_flags == AXE_178_MAX_BUFSZ ? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This can't possibly be correct.