On Mon, 14 Jan 2019 at 22:30, Florian Westphal <[email protected]> wrote:
>
> Taehee Yoo reports multiple race conditions in nft_compat.
> Example:
>   while true; do
>    iptables-nft -t nat -I POSTROUTING -m string --string \
>            ap --algo kmp -j MASQUERADE &
>    nft flush ruleset &
>   done
>
> There are two different, but related issues:
>  1. race between concurrent users in the same namespace
>  2. race between concurrent users in different namespaces.
>
> This series attempts to resolve this as follows:
> First patch makes use of refcount_t type: Using plain integer doesn't
> work anymore, as there is no central mutex guarding it anymore.
>
> Second patch makes the nft_xt object lists scoped per netns to
> prevent a nft client in one netns from grabbing an object instantiated
> in another namespace (other netns could free it before we can
> increment reference count).
>
> Last patch enforces the 'destroy hook must not have side effect' rule.
>
> Please let me know if you see any further problems with this.
> I tried to avoid patch #2, but i found no other solution (other than
> fudging with nf_tables core).
>
>  nft_compat.c |  189 
> ++++++++++++++++++++++++++++++++++++++++++++---------------
>  1 file changed, 142 insertions(+), 47 deletions(-)
>
>

Hi Florian!

I have tested this patchset.
It works well and I think there is no bug in this patchset.

Thanks!

Reply via email to