Skip to content

Commit 06815f9

Browse files
committed
volshell: add MAX_TYPENAME_DISPLAY_LENGTH to stop extremely large names breaking the output
1 parent fe6d575 commit 06815f9

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

volatility3/cli/volshell/generic.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,9 @@ def display_type(
418418
offset: Optional[int] = None,
419419
):
420420
"""Display Type describes the members of a particular object in alphabetical order"""
421+
422+
MAX_TYPENAME_DISPLAY_LENGTH = 256
423+
421424
if not isinstance(
422425
object,
423426
(str, interfaces.objects.ObjectInterface, interfaces.objects.Template),
@@ -487,6 +490,8 @@ def display_type(
487490
member_type
488491
) # special case for pointers to show what they point to
489492
longest_typename = max(len(member_type_name), longest_typename)
493+
if longest_typename > MAX_TYPENAME_DISPLAY_LENGTH:
494+
longest_typename = MAX_TYPENAME_DISPLAY_LENGTH
490495

491496
for member in sorted(
492497
volobject.vol.members, key=lambda x: (volobject.vol.members[x][0], x)
@@ -497,6 +502,10 @@ def display_type(
497502
member_type_name = self._get_type_name_with_pointer(
498503
member_type
499504
) # special case for pointers to show what they point to
505+
if len(member_type_name) > MAX_TYPENAME_DISPLAY_LENGTH:
506+
member_type_name = (
507+
f"{member_type_name[:MAX_TYPENAME_DISPLAY_LENGTH - 3]}..."
508+
)
500509
len_typename = len(member_type_name)
501510
if isinstance(volobject, interfaces.objects.ObjectInterface):
502511
# We're an instance, so also display the data

0 commit comments

Comments
 (0)