On Wed, Feb 24, 2016 at 9:29 AM, Alexander Duyck <[email protected]> wrote: > 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 <[email protected]>
Acked-by: Tom Herbert <[email protected]> > --- > net/core/flow_dissector.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c > index 8bd745f72734..6288153d7f36 100644 > --- a/net/core/flow_dissector.c > +++ b/net/core/flow_dissector.c > @@ -340,8 +340,11 @@ mpls: > } > > 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; > } >
