From d4e06f5bb9511c6a3a00191f74a99ba0c58093a6 Mon Sep 17 00:00:00 2001 From: Alvaro Neira Ayuso Date: Wed, 17 Sep 2014 09:20:28 +0200 Subject: src: add specific byteorder to the struct proto_hdr_template If we try to add a rule like: nft add rule filter input udp length {55-9999} nftable shows: BUG: invalid byte order conversion 0 => 2 nft: src/evaluate.c:153: byteorder_conversion_op: Assertion `0' failed. Some of the existing payload fields rely on BYTEORDER_INVALID. Therefore, if we try to convert it in evaluation step, we hit this bug. This patch allows to add a specific byteorder to the struct proto_hdr_template. If we create a expression with a invalid byteorder, we will use the byteorder added to the proto_hdr_template structure. Signed-off-by: Alvaro Neira Ayuso Signed-off-by: Patrick McHardy --- src/payload.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/payload.c') diff --git a/src/payload.c b/src/payload.c index 88baef20..1eee4e09 100644 --- a/src/payload.c +++ b/src/payload.c @@ -117,7 +117,7 @@ struct expr *payload_expr_alloc(const struct location *loc, } expr = expr_alloc(loc, &payload_expr_ops, tmpl->dtype, - tmpl->dtype->byteorder, tmpl->len); + tmpl->byteorder, tmpl->len); expr->flags |= flags; expr->payload.desc = desc; -- cgit v1.2.3