summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2021-08-11 05:24:48 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2021-08-11 05:39:38 +0200
commitd9957a5c57a11df8233ea4a7c91c579af511e4b6 (patch)
tree2cbdf0b4db9a90abf83d5790ff80077ceb738da2 /src
parentb98fee20bfe23c787ff1f00660a205865eb8bb95 (diff)
tcpopt: bogus assertion on undefined options
# nft add rule x y tcp option 6 exists # nft list ruleset nft: tcpopt.c:208: tcpopt_init_raw: Assertion `expr->exthdr.desc != NULL' failed. Aborted Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1557 Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r--src/tcpopt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/tcpopt.c b/src/tcpopt.c
index 05b5ee6e..53fe9bc8 100644
--- a/src/tcpopt.c
+++ b/src/tcpopt.c
@@ -200,7 +200,8 @@ void tcpopt_init_raw(struct expr *expr, uint8_t type, unsigned int off,
else
datatype_set(expr, &integer_type);
- if (type >= array_size(tcpopt_protocols))
+ if (type >= array_size(tcpopt_protocols) ||
+ !tcpopt_protocols[type])
return;
expr->exthdr.desc = tcpopt_protocols[type];