mirror of
https://github.com/volatilityfoundation/volatility3.git
synced 2026-09-09 19:27:39 +02:00
PR review fixes: Since the IDR, XArray and RadixTree can store any value, it renames the function names to a more generic name
This commit is contained in:
@@ -44,7 +44,7 @@ class EBPF(plugins.PluginInterface):
|
||||
)
|
||||
|
||||
prog_idr = vmlinux.object_from_symbol("prog_idr")
|
||||
for page_addr in prog_idr.get_page_addresses():
|
||||
for page_addr in prog_idr.get_entries():
|
||||
bpf_prog = vmlinux.object("bpf_prog", offset=page_addr, absolute=True)
|
||||
yield bpf_prog
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@ class PIDHashTable(plugins.PluginInterface):
|
||||
ns_addr = self.vmlinux.get_symbol("init_pid_ns").address
|
||||
ns = self.vmlinux.object("pid_namespace", offset=ns_addr)
|
||||
|
||||
for page_addr in ns.idr.get_page_addresses():
|
||||
for page_addr in ns.idr.get_entries():
|
||||
task = self._task_for_radix_pid_node(page_addr)
|
||||
if self._is_valid_task(task):
|
||||
yield task
|
||||
|
||||
@@ -572,7 +572,7 @@ class Tree(ABC):
|
||||
for child_node in self._iter_node(nodep, height - 1):
|
||||
yield child_node
|
||||
|
||||
def get_page_addresses(self, root: interfaces.objects.ObjectInterface) -> int:
|
||||
def get_entries(self, root: interfaces.objects.ObjectInterface) -> int:
|
||||
"""Walks the tree data structure
|
||||
|
||||
Args:
|
||||
@@ -762,7 +762,7 @@ class PageCache(object):
|
||||
Page objects
|
||||
"""
|
||||
|
||||
for page_addr in self._tree.get_page_addresses(self._page_cache.i_pages):
|
||||
for page_addr in self._tree.get_entries(self._page_cache.i_pages):
|
||||
if not page_addr:
|
||||
continue
|
||||
|
||||
|
||||
@@ -2167,7 +2167,7 @@ class IDR(objects.StructType):
|
||||
|
||||
return idr_layer
|
||||
|
||||
def _old_kernel_get_page_addresses(self, in_use) -> int:
|
||||
def _old_kernel_get_entries(self) -> int:
|
||||
# Kernels < 4.11
|
||||
total = next_id = 0
|
||||
while total < in_use:
|
||||
@@ -2178,14 +2178,14 @@ class IDR(objects.StructType):
|
||||
|
||||
next_id += 1
|
||||
|
||||
def _new_kernel_get_page_addresses(self, _in_use) -> int:
|
||||
def _new_kernel_get_entries(self) -> int:
|
||||
# Kernels >= 4.11
|
||||
vmlinux = linux.LinuxUtilities.get_module_from_volobj_type(self._context, self)
|
||||
tree = linux.LinuxUtilities.choose_kernel_tree(vmlinux)
|
||||
for page_addr in tree.get_page_addresses(root=self.idr_rt):
|
||||
for page_addr in tree.get_entries(root=self.idr_rt):
|
||||
yield page_addr
|
||||
|
||||
def get_page_addresses(self, in_use=0) -> int:
|
||||
def get_entries(self) -> int:
|
||||
"""Walks the IDR and yield a pointer associated with each element.
|
||||
|
||||
Args:
|
||||
@@ -2195,9 +2195,11 @@ class IDR(objects.StructType):
|
||||
A pointer associated with each element.
|
||||
"""
|
||||
if self.has_member("idr_rt"):
|
||||
get_page_addresses_func = self._new_kernel_get_page_addresses
|
||||
# Kernels >= 4.11
|
||||
get_entries_func = self._new_kernel_get_entries
|
||||
else:
|
||||
get_page_addresses_func = self._old_kernel_get_page_addresses
|
||||
# Kernels < 4.11
|
||||
get_entries_func = self._old_kernel_get_entries
|
||||
|
||||
for page_addr in get_page_addresses_func(in_use):
|
||||
for page_addr in get_entries_func():
|
||||
yield page_addr
|
||||
|
||||
Reference in New Issue
Block a user