Re: [PATCH 2/6] conntrack: set reply l4 proto for unknown protocol

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jun 23, 2022 at 07:49:56PM +0200, Mikhail Sennikovsky wrote:
> Withouth reply l4 protocol being set consistently the mnl_cb_run
> (in fact the kernel) would return EINVAL.
> 
> Make sure the reply l4 protocol is set properly for unknown
> protocols.
> 
> Signed-off-by: Mikhail Sennikovsky <mikhail.sennikovskii@xxxxxxxxx>
> ---
>  extensions/libct_proto_unknown.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/extensions/libct_proto_unknown.c b/extensions/libct_proto_unknown.c
> index 2a47704..992b1ed 100644
> --- a/extensions/libct_proto_unknown.c
> +++ b/extensions/libct_proto_unknown.c
> @@ -21,10 +21,21 @@ static void help(void)
>  	fprintf(stdout, "  no options (unsupported)\n");
>  }
>  
> +static void final_check(unsigned int flags,
> +		        unsigned int cmd,
> +		        struct nf_conntrack *ct)
> +{
> +	if (nfct_attr_is_set(ct, ATTR_REPL_L3PROTO) &&
> +	    nfct_attr_is_set(ct, ATTR_L4PROTO) &&
> +	    !nfct_attr_is_set(ct, ATTR_REPL_L4PROTO))
> +		nfct_set_attr_u8(ct, ATTR_REPL_L4PROTO, nfct_get_attr_u8(ct, ATTR_L4PROTO));
> +}
> +
>  struct ctproto_handler ct_proto_unknown = {
>  	.name 		= "unknown",
>  	.help		= help,
>  	.opts		= opts,
> +	.final_check = final_check,

missing indent to align it with other C99 initializers (coding style nitpick)

	.final_check    = final_check,

>  	.version	= VERSION,
>  };
>  
> -- 
> 2.25.1
> 



[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux