netfilter: ipset: do not call ipset_nest_end after nla_nest_cancel
[ Upstream commit708abf74dd
] In the error handling block, nla_nest_cancel(skb, atd) is called to cancel the nest operation. But then, ipset_nest_end(skb, atd) is unexpected called to end the nest operation. This patch calls the ipset_nest_end only on the branch that nla_nest_cancel is not called. Fixes:45040978c8
("netfilter: ipset: Fix set:list type crash when flush/dump set in parallel") Signed-off-by: Pan Bian <bianpan2016@163.com> Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Родитель
214b5617cc
Коммит
e8267a5ec4
|
@ -542,8 +542,8 @@ nla_put_failure:
|
|||
ret = -EMSGSIZE;
|
||||
} else {
|
||||
cb->args[IPSET_CB_ARG0] = i;
|
||||
ipset_nest_end(skb, atd);
|
||||
}
|
||||
ipset_nest_end(skb, atd);
|
||||
out:
|
||||
rcu_read_unlock();
|
||||
return ret;
|
||||
|
|
Загрузка…
Ссылка в новой задаче