From 5a85f88636e6456c8e6a2d8d8554ad1e261661bf Mon Sep 17 00:00:00 2001 From: Mike Auty Date: Sat, 10 Feb 2018 22:38:50 +0000 Subject: [PATCH] Improve construction automagic (it now continues recursing after errors). --- volatility/framework/automagic/construct_layers.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/volatility/framework/automagic/construct_layers.py b/volatility/framework/automagic/construct_layers.py index f9acbf058..267481bd4 100644 --- a/volatility/framework/automagic/construct_layers.py +++ b/volatility/framework/automagic/construct_layers.py @@ -33,7 +33,11 @@ class ConstructionMagic(interfaces.automagic.AutomagicInterface): subreq_config_path = interfaces.configuration.path_join(config_path, requirement.name) for subreq in requirement.requirements.values(): - self(context, subreq_config_path, subreq, optional or subreq.optional) + try: + self(context, subreq_config_path, subreq, optional or subreq.optional) + except Exception as e: + # We don't really care if this fails, it tends to mean the configuration isn't complete for that item + vollog.log(constants.LOGLEVEL_VVVV, "Construction Exception occurred: {}".format(e)) invalid = subreq.unsatisfied(context, subreq_config_path) # We want to traverse optional paths, so don't check until we've tried to validate # We also don't want to emit a debug message when a parent is optional, hence the optional parameter