mirror of
https://github.com/volatilityfoundation/volatility3.git
synced 2026-09-06 01:37:39 +02:00
Address feedback. Add doc strings
This commit is contained in:
@@ -7,7 +7,7 @@ import contextlib
|
||||
import functools
|
||||
import logging
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import Iterator, List, Tuple, Optional, Union, Dict
|
||||
from typing import List, Tuple, Optional, Union, Dict, Generator, Iterator
|
||||
|
||||
import volatility3.framework.symbols.linux.utilities.modules as linux_utilities_modules
|
||||
from volatility3 import framework
|
||||
@@ -429,7 +429,28 @@ class LinuxUtilities(interfaces.configuration.VersionableInterface):
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def walk_internal_list(cls, vmlinux, struct_name, list_member, list_start):
|
||||
def walk_internal_list(
|
||||
cls,
|
||||
vmlinux: interfaces.context.ModuleInterface,
|
||||
struct_name: str,
|
||||
list_member: str,
|
||||
list_start: interfaces.objects.ObjectInterface,
|
||||
max_count: int = 4096,
|
||||
) -> Generator[interfaces.objects.ObjectInterface, None, None]:
|
||||
"""
|
||||
An API that provides generic, smear-resistant enumeration of embedded lists
|
||||
|
||||
Args:
|
||||
vmlinux:
|
||||
struct_name: name of the structure of the list elements
|
||||
list_member: name of the list_member holding the internal list
|
||||
list_start: Starting (head) member of the list
|
||||
max_count: Optional maximum amount of list elements that will be yielded
|
||||
|
||||
Returns:
|
||||
Instances of `struct_name`
|
||||
"""
|
||||
|
||||
count = 0
|
||||
seen = set()
|
||||
|
||||
@@ -452,9 +473,9 @@ class LinuxUtilities(interfaces.configuration.VersionableInterface):
|
||||
|
||||
list_start = getattr(list_struct, list_member)
|
||||
|
||||
if count == 4096:
|
||||
if count == max_count:
|
||||
vollog.debug(
|
||||
f"walk_internal_list: Breaking list enumeration at {count}"
|
||||
f"walk_internal_list: Breaking list enumeration at maximum allowed count of {count}"
|
||||
)
|
||||
break
|
||||
|
||||
|
||||
Reference in New Issue
Block a user