From 452e7653334bd2808441fe40235307f1f3dd23c4 Mon Sep 17 00:00:00 2001 From: Florian Westphal Date: Wed, 14 Aug 2019 13:45:19 +0200 Subject: 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 Acked-by: Pablo Neira Ayuso --- src/parser_json.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/parser_json.c') diff --git a/src/parser_json.c b/src/parser_json.c index d42bab70..a969bd4c 100644 --- a/src/parser_json.c +++ b/src/parser_json.c @@ -304,7 +304,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); -- cgit v1.2.3