On 09/10/08 17:43, Eric Cheng wrote: > Darren Reed wrote: >> >> In that case: >> >> Location: mac_flow.c >> Type: T >> Priority: 1 >> Comment: Throughout this code the assumption is made that the >> packet is not a fragment and that what follows the IP header is in >> fact a layer 4 protocol header. >> > > I think we have quite a few PKT_TOO_SMALL() checks to ensure the > transport header really exists before dereferencing it. do you not > think that's sufficient? the likelihood of having a fragment <= ip + > mac header sizes is small so we chose to fail the classification for > these cases (the packet would not be dropped and will reach ip. it's > just that we don't want to be in business of reassembling fragments > within the mac)
PKT_TOO_SMALL() verifies that you have "n" bytes of data after IP. It doesn't guarantee you that it is fragmented data or protocol header. Darren
