From: Liping Zhang Date: Sat, 14 May 2016 12:43:35 +0000 (+0800) Subject: evaluate: fix crash if we add an error format rule X-Git-Tag: v0.6~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d4b86b6bfdf979a13c7cf4231bb4ec1d0c04d6a3;p=thirdparty%2Fnftables.git evaluate: fix crash if we add an error format rule If we add a such nft rule: nft add rule filter input ip protocol icmp tcp dport 0 we will always meet the assert condition: nft: evaluate.c:536: resolve_protocol_conflict: Assertion `base < (__PROTO_BASE_MAX - 1)' failed. Aborted (core dumped) Signed-off-by: Florian Westphal --- diff --git a/src/evaluate.c b/src/evaluate.c index 53f19b29..c317761f 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -533,7 +533,7 @@ static int resolve_protocol_conflict(struct eval_ctx *ctx, list_add_tail(&nstmt->list, &ctx->stmt->list); } - assert(base < PROTO_BASE_MAX); + assert(base <= PROTO_BASE_MAX); /* This payload and the existing context don't match, conflict. */ if (ctx->pctx.protocol[base + 1].desc != NULL) return 1;