cape: linux: support no parent pid

This commit is contained in:
Willi Ballenthin
2025-03-19 16:01:57 +00:00
parent c057a3b927
commit 7d28cf8016
2 changed files with 8 additions and 2 deletions

View File

@@ -32,7 +32,13 @@ def get_processes(report: CapeReport) -> Iterator[ProcessHandle]:
"""
seen_processes = {}
for process in report.behavior.processes:
addr = ProcessAddress(pid=process.process_id, ppid=process.parent_id)
if process.parent_id is None:
# on CAPE for Linux, the root process may have no parent id, so we set that to 0
ppid = 0
else:
ppid = process.parent_id
addr = ProcessAddress(pid=process.process_id, ppid=ppid)
yield ProcessHandle(address=addr, inner=process)
# check for pid and ppid reuse

View File

@@ -320,7 +320,7 @@ class Call(FlexibleModel):
class Process(FlexibleModel):
process_id: int
process_name: str
parent_id: int
parent_id: int | None
# module_path: str
# first_seen: str
calls: list[Call]