From b148305f768b5d11ae5c0a4fe9bc6c145399e275 Mon Sep 17 00:00:00 2001 From: Mike Auty Date: Wed, 12 Dec 2018 23:42:31 +0000 Subject: [PATCH] Add in protection for the Lime Layer being unable to read the header. --- volatility/framework/layers/lime.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/volatility/framework/layers/lime.py b/volatility/framework/layers/lime.py index 4ff3bdec3..1eea64170 100644 --- a/volatility/framework/layers/lime.py +++ b/volatility/framework/layers/lime.py @@ -67,7 +67,10 @@ class LimeLayer(segmented.SegmentedLayer): def _check_header(cls, base_layer: interfaces.layers.DataLayerInterface, offset: int = 0) -> typing.Tuple[int, int]: - header_data = base_layer.read(offset, cls._header_struct.size) + try: + header_data = base_layer.read(offset, cls._header_struct.size) + except exceptions.InvalidAddressException: + raise LimeFormatException("Offset 0x{:0x} does not exist within the base layer".format(offset)) (magic, version, start, end, reserved) = cls._header_struct.unpack(header_data) if magic != cls.MAGIC: raise LimeFormatException("bad magic 0x{:x} at file offset 0x{:x}".format(magic, offset))