37 lines
1.2 KiB
Diff
37 lines
1.2 KiB
Diff
From 582df543fab12f6c9032ddf6c789a4e0a7242358 Mon Sep 17 00:00:00 2001
|
|
From: Florian Westphal <fw@strlen.de>
|
|
Date: Wed, 14 Aug 2019 13:45:19 +0200
|
|
Subject: [PATCH] src: json: fix constant parsing on bigendian
|
|
|
|
json restore is broken on big-endian because we errounously
|
|
passed uint8_t with 64 bit size indicator.
|
|
|
|
On bigendian, this causes all values to get shifted by 56 bit,
|
|
this will then cause the eval step to bail because all values
|
|
are outside of the 8bit 0-255 protocol range.
|
|
|
|
Signed-off-by: Florian Westphal <fw@strlen.de>
|
|
Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
(cherry picked from commit 452e7653334bd2808441fe40235307f1f3dd23c4)
|
|
Signed-off-by: Phil Sutter <psutter@redhat.com>
|
|
---
|
|
src/parser_json.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/src/parser_json.c b/src/parser_json.c
|
|
index 7e4da4838e40b..231f377c4f2da 100644
|
|
--- a/src/parser_json.c
|
|
+++ b/src/parser_json.c
|
|
@@ -295,7 +295,7 @@ static struct expr *json_parse_constant(struct json_ctx *ctx, const char *name)
|
|
return constant_expr_alloc(int_loc,
|
|
constant_tbl[i].dtype,
|
|
BYTEORDER_HOST_ENDIAN,
|
|
- 8 * BITS_PER_BYTE,
|
|
+ BITS_PER_BYTE,
|
|
&constant_tbl[i].data);
|
|
}
|
|
json_error(ctx, "Unknown constant '%s'.", name);
|
|
--
|
|
2.22.0
|
|
|