The prior change I made was wrong. When interpreting the 802.3 len field

as 'big-endian', values between 0-1500 are reserved as lengths.  Values
OVER 1500 are type codes.
This commit is contained in:
mark 2000-02-07 04:21:25 +00:00
parent f59c207eef
commit ee77a4bc97
1 changed files with 1 additions and 1 deletions

View File

@ -144,7 +144,7 @@ int p80211pb_ether_to_p80211( wlandevice_t *wlandev, UINT32 ethconv, wlan_pb_t *
} else {
/* step 1: classify ether frame, DIX or 802.3? */
proto = ntohs(pb->eth_hdr->type);
if ( proto > 0x05DC ) { /* type|len <= 1500 ? */
if ( proto <= 1500 ) { /* codes <= 1500 reserved for 802.3 lengths */
/* it's 802.3, pass ether payload unchanged, */
/* leave off any PAD octets. */
pb->p80211hostbuf = kmalloc( WLAN_HDR_A3_LEN, GFP_ATOMIC);