ACK: [SRU C, D/Unstable][PATCH 1/1] netfilter: nf_conncount: don't skip eviction when age is negative

Kleber Souza kleber.souza at canonical.com
Thu Jan 10 15:35:43 UTC 2019


On 1/10/19 4:45 AM, Mauricio Faria de Oliveira wrote:
> From: Florian Westphal <fw at strlen.de>
>
> BugLink: https://bugs.launchpad.net/bugs/1811094
>
> age is signed integer, so result can be negative when the timestamps
> have a large delta.  In this case we want to discard the entry.
>
> Instead of using age >= 2 || age < 0, just make it unsigned.
>
> Fixes: b36e4523d4d56 ("netfilter: nf_conncount: fix garbage collection confirm race")
> Reviewed-by: Shawn Bohrer <sbohrer at cloudflare.com>
> Signed-off-by: Florian Westphal <fw at strlen.de>
> Signed-off-by: Pablo Neira Ayuso <pablo at netfilter.org>
> (cherry picked from commit 4cd273bb91b3001f623f516ec726c49754571b1a)
> Signed-off-by: Mauricio Faria de Oliveira <mfo at canonical.com>

Acked-by: Kleber Sacilotto de Souza <kleber.souza at canonical.com>


> ---
>  net/netfilter/nf_conncount.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/netfilter/nf_conncount.c b/net/netfilter/nf_conncount.c
> index 510039862aa9..79d1e17a39d8 100644
> --- a/net/netfilter/nf_conncount.c
> +++ b/net/netfilter/nf_conncount.c
> @@ -106,7 +106,7 @@ find_or_evict(struct net *net, struct nf_conncount_tuple *conn)
>  	const struct nf_conntrack_tuple_hash *found;
>  	unsigned long a, b;
>  	int cpu = raw_smp_processor_id();
> -	__s32 age;
> +	u32 age;
>  
>  	found = nf_conntrack_find_get(net, &conn->zone, &conn->tuple);
>  	if (found)





More information about the kernel-team mailing list