file output failure results in UnreadableValue

This commit is contained in:
Abyss Watcher
2024-12-23 21:28:58 +01:00
parent 8d213284e6
commit 0bb09191aa
@@ -8,7 +8,12 @@ from dataclasses import dataclass
from typing import Type, List, Dict, Tuple
from volatility3.framework import constants, exceptions, interfaces
from volatility3.framework.configuration import requirements
from volatility3.framework.renderers import format_hints, TreeGrid, NotAvailableValue
from volatility3.framework.renderers import (
format_hints,
TreeGrid,
NotAvailableValue,
UnreadableValue,
)
from volatility3.framework.objects import utility
from volatility3.framework.constants import architectures
from volatility3.framework.symbols import linux
@@ -280,11 +285,12 @@ You can try using ffmpeg to decode the raw buffer. Example usage:
file_output = self.dump_fb(
self.context, kernel_name, self.open, fb, bool(fb.color_fields)
)
file_output = str(file_output)
except exceptions.InvalidAddressException as excp:
vollog.error(
f'Layer {excp.layer_name} failed to read address {hex(excp.invalid_address)} when dumping framebuffer "{fb.id}".'
)
file_output = "Error"
file_output = UnreadableValue()
try:
fb_device_name = utility.pointer_to_string(
@@ -303,7 +309,7 @@ You can try using ffmpeg to decode the raw buffer. Example usage:
f"{fb.xres_virtual}x{fb.yres_virtual}",
fb.bpp,
"RUNNING" if fb.fb_info.state == 0 else "SUSPENDED",
str(file_output),
file_output,
),
)