| From adc972c5b88829d38ede08b1069718661c7330ae Mon Sep 17 00:00:00 2001 |
| From: Taehee Yoo <ap420073@gmail.com> |
| Date: Mon, 11 Jun 2018 22:16:33 +0900 |
| Subject: netfilter: nf_tables: use WARN_ON_ONCE instead of BUG_ON in nft_do_chain() |
| |
| From: Taehee Yoo <ap420073@gmail.com> |
| |
| commit adc972c5b88829d38ede08b1069718661c7330ae upstream. |
| |
| When depth of chain is bigger than NFT_JUMP_STACK_SIZE, the nft_do_chain |
| crashes. But there is no need to crash hard here. |
| |
| Suggested-by: Florian Westphal <fw@strlen.de> |
| Signed-off-by: Taehee Yoo <ap420073@gmail.com> |
| Acked-by: Florian Westphal <fw@strlen.de> |
| Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| net/netfilter/nf_tables_core.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/net/netfilter/nf_tables_core.c |
| +++ b/net/netfilter/nf_tables_core.c |
| @@ -167,7 +167,8 @@ next_rule: |
| |
| switch (regs.verdict.code) { |
| case NFT_JUMP: |
| - BUG_ON(stackptr >= NFT_JUMP_STACK_SIZE); |
| + if (WARN_ON_ONCE(stackptr >= NFT_JUMP_STACK_SIZE)) |
| + return NF_DROP; |
| jumpstack[stackptr].chain = chain; |
| jumpstack[stackptr].rule = rule; |
| jumpstack[stackptr].rulenum = rulenum; |