On Mon, Aug 20, 2018 at 01:34:58PM +0200, Florian Westphal wrote:
> @@ -43,6 +48,18 @@ static int checksum_tg_check(const struct xt_tgchk_param 
> *par)
>       if (!einfo->operation)
>               return -EINVAL;
>  
> +     switch (par->family) {
> +     case NFPROTO_IPV4:
> +             if (i4->proto == IPPROTO_UDP && (i4->invflags & XT_INV_PROTO) 
> == 0)
> +                     return 0;
> +             break;
> +     case NFPROTO_IPV6:
> +             if (i6->proto == IPPROTO_UDP && (i6->invflags & XT_INV_PROTO) 
> == 0)
> +                     return 0;
> +             break;
> +     }
> +
> +     pr_warn_once("CHECKSUM should be avoided.  If really needed, restrict 
> with \"-p udp\" and only use in OUTPUT\n");
>       return 0;
>  }
>  

In the IPv6 branch, you should also check (i6->flags & IP6T_F_PROTO).
It's probably not a big deal but as other places chekcing protocol
do that, it would be better to be consistent.

The rest looks fine to me.

Michal Kubecek

Reply via email to