38 lines
1.1 KiB
Diff
38 lines
1.1 KiB
Diff
From e780df8fcceeb5b8fbcbd5d965bb07124ed7da2d Mon Sep 17 00:00:00 2001
|
|
From: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Date: Wed, 5 Oct 2022 01:36:52 +0200
|
|
Subject: [PATCH] evaluate: datatype memleak after binop transfer
|
|
|
|
The following ruleset:
|
|
|
|
ip version vmap { 4 : jump t3, 6 : jump t4 }
|
|
|
|
results in a memleak.
|
|
|
|
expr_evaluate_shift() overrides the datatype which results in a datatype
|
|
memleak after the binop transfer that triggers a left-shift of the
|
|
constant (in the map).
|
|
|
|
Conflict: NA
|
|
Reference: https://git.netfilter.org/nftables/commit?id=e780df8fcceeb5b8fbcbd5d965bb07124ed7da2d
|
|
|
|
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
---
|
|
src/evaluate.c | 1 -
|
|
1 file changed, 1 deletion(-)
|
|
|
|
diff --git a/src/evaluate.c b/src/evaluate.c
|
|
index 2e2b8df0..0bf6a0d1 100644
|
|
--- a/src/evaluate.c
|
|
+++ b/src/evaluate.c
|
|
@@ -1189,7 +1189,6 @@ static int expr_evaluate_shift(struct eval_ctx *ctx, struct expr **expr)
|
|
if (byteorder_conversion(ctx, &op->right, BYTEORDER_HOST_ENDIAN) < 0)
|
|
return -1;
|
|
|
|
- op->dtype = &integer_type;
|
|
op->byteorder = BYTEORDER_HOST_ENDIAN;
|
|
op->len = left->len;
|
|
|
|
--
|
|
2.23.0
|