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;
>         }
>

Reply via email to