From d3d19fe776782f2a82b39ea3bbe38082e61b4169 Mon Sep 17 00:00:00 2001 From: Mike Auty Date: Tue, 1 Apr 2025 23:37:57 +0100 Subject: [PATCH] CLI: Handle BaseAbsentValues in JSON --- volatility3/cli/text_renderer.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/volatility3/cli/text_renderer.py b/volatility3/cli/text_renderer.py index 06c6564de..69a5468a7 100644 --- a/volatility3/cli/text_renderer.py +++ b/volatility3/cli/text_renderer.py @@ -535,10 +535,18 @@ class PrettyTextRenderer(CLIRenderer): class JsonRenderer(CLIRenderer): _type_renderers = { - format_hints.HexBytes: lambda x: x.hex(" "), + format_hints.HexBytes: lambda x: ( + x.hex(" ") + if not isinstance(x, interfaces.renderers.BaseAbsentValue) + else "N/A" + ), renderers.Disassembly: quoted_optional(display_disassembly), format_hints.MultiTypeData: quoted_optional(multitypedata_as_text), - renderers.LayerData: lambda x: LayerDataRenderer().render_bytes(x)[0].hex(" "), + renderers.LayerData: lambda x: ( + LayerDataRenderer().render_bytes(x)[0].hex(" ") + if not isinstance(x, interfaces.renderers.BaseAbsentValue) + else "N/A" + ), bytes: optional(lambda x: " ".join(f"{b:02x}" for b in x)), datetime.datetime: lambda x: ( x.isoformat()