flow_dissector: Correctly handle parsing FCoE
The flow dissector bits handling FCoE didn't bother to actually validate that the space there was enough for the FCoE header. So we need to update things so that if there is room we add the header and report a good result, otherwise we do not add the header, and report the bad result. Signed-off-by: Alexander Duyck <aduyck@mirantis.com> Acked-by: Tom Herbert <tom@herbertland.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
43d2ccb3c1
commit
224516b3a7
|
@ -340,8 +340,11 @@ bool __skb_flow_dissect(const struct sk_buff *skb,
|
|||
}
|
||||
|
||||
case htons(ETH_P_FCOE):
|
||||
key_control->thoff = (u16)(nhoff + FCOE_HEADER_LEN);
|
||||
/* fall through */
|
||||
if ((hlen - nhoff) < FCOE_HEADER_LEN)
|
||||
goto out_bad;
|
||||
|
||||
nhoff += FCOE_HEADER_LEN;
|
||||
goto out_good;
|
||||
default:
|
||||
goto out_bad;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue