lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 03 Feb 2014 08:22:04 -0800 From: Eric Dumazet <eric.dumazet@...il.com> To: Pablo Neira Ayuso <pablo@...filter.org> Cc: Florian Westphal <fw@...len.de>, Andrew Vagin <avagin@...allels.com>, Andrey Vagin <avagin@...nvz.org>, netfilter-devel@...r.kernel.org, netfilter@...r.kernel.org, netdev@...r.kernel.org, linux-kernel@...r.kernel.org, vvs@...nvz.org, Cyrill Gorcunov <gorcunov@...nvz.org>, Vasiliy Averin <vvs@...allels.com> Subject: Re: [PATCH] [RFC] netfilter: nf_conntrack: don't relase a conntrack with non-zero refcnt On Mon, 2014-02-03 at 00:30 +0100, Pablo Neira Ayuso wrote: > */ > smp_wmb(); > - atomic_set(&ct->ct_general.use, 1); > + atomic_set(&ct->ct_general.use, 0); > return ct; Hi Pablo ! I think your patch is the way to go, but might need some extra care with memory barriers. I believe the smp_wmb() here is no longer needed. If its a newly allocated memory, no other users can access to ct, if its a recycled ct, content is already 0 anyway. After your patch, nf_conntrack_get(&tmpl->ct_general) should increment an already non zero refcnt, so no memory barrier is needed. But one smp_wmb() is needed right before this point : /* The caller holds a reference to this object */ atomic_set(&ct->ct_general.use, 2); Thanks ! -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists