mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
netfilter: nf_flow_table: fix missing error check for rhashtable_insert_fast
[ Upstream commit43c8f13118] rhashtable_insert_fast() may return an error value when memory allocation fails, but flow_offload_add() does not check for errors. This patch just adds missing error checking. Fixes:ac2a66665e("netfilter: add generic flow table infrastructure") Signed-off-by: Taehee Yoo <ap420073@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
217ec4a6e4
commit
d0941980fd
|
|
@ -185,14 +185,25 @@ static const struct rhashtable_params nf_flow_offload_rhash_params = {
|
|||
|
||||
int flow_offload_add(struct nf_flowtable *flow_table, struct flow_offload *flow)
|
||||
{
|
||||
flow->timeout = (u32)jiffies;
|
||||
int err;
|
||||
|
||||
rhashtable_insert_fast(&flow_table->rhashtable,
|
||||
&flow->tuplehash[FLOW_OFFLOAD_DIR_ORIGINAL].node,
|
||||
nf_flow_offload_rhash_params);
|
||||
rhashtable_insert_fast(&flow_table->rhashtable,
|
||||
&flow->tuplehash[FLOW_OFFLOAD_DIR_REPLY].node,
|
||||
nf_flow_offload_rhash_params);
|
||||
err = rhashtable_insert_fast(&flow_table->rhashtable,
|
||||
&flow->tuplehash[0].node,
|
||||
nf_flow_offload_rhash_params);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = rhashtable_insert_fast(&flow_table->rhashtable,
|
||||
&flow->tuplehash[1].node,
|
||||
nf_flow_offload_rhash_params);
|
||||
if (err < 0) {
|
||||
rhashtable_remove_fast(&flow_table->rhashtable,
|
||||
&flow->tuplehash[0].node,
|
||||
nf_flow_offload_rhash_params);
|
||||
return err;
|
||||
}
|
||||
|
||||
flow->timeout = (u32)jiffies;
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(flow_offload_add);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user