From 7c7de6290014cf8a78def872350f41131982ae05 Mon Sep 17 00:00:00 2001 From: Mike Auty Date: Mon, 1 Jul 2019 00:17:08 +0100 Subject: [PATCH] Fix up long standing bugs in enumeration usage. --- volatility/framework/symbols/intermed.py | 2 +- volatility/framework/symbols/native.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/volatility/framework/symbols/intermed.py b/volatility/framework/symbols/intermed.py index dbd27086f..502232b57 100644 --- a/volatility/framework/symbols/intermed.py +++ b/volatility/framework/symbols/intermed.py @@ -388,7 +388,7 @@ class Version1Format(ISFormatTable): lookup = self._json_object['enums'].get(name, None) if not lookup: raise exceptions.SymbolSpaceError("Unknown enumeration: {}".format(name)) - result = {"choices": copy.deepcopy(lookup['constants']), "base_type": self.natives.get_type(lookup['base'])} + result = {"choices": copy.deepcopy(lookup['constants']), "base_type": self.natives.get_type(lookup['type'])} return result def get_enumeration(self, enum_name: str) -> interfaces.objects.Template: diff --git a/volatility/framework/symbols/native.py b/volatility/framework/symbols/native.py index 7af25a2d3..0ae645766 100644 --- a/volatility/framework/symbols/native.py +++ b/volatility/framework/symbols/native.py @@ -72,10 +72,10 @@ class NativeTable(interfaces.symbols.NativeTableInterface): additional = {"count": 0, "subtype": self.get_type('void')} elif type_name == 'enum': obj = objects.Enumeration - additional = {"base_type": self.get_type('int'), "choices": {}} + additional = {"base_type": self.get_type('void'), "choices": {}} elif type_name == 'bitfield': obj = objects.BitField - additional = {"start_bit": 0, "end_bit": 0, "base_type": self.get_type('int')} + additional = {"start_bit": 0, "end_bit": 0, "base_type": self.get_type('void')} elif type_name == 'string': obj = objects.String additional = {"max_length": 0}