From 6fde305fbccf760740c0397f981b2bda1a1b1351 Mon Sep 17 00:00:00 2001 From: jxuanli Date: Wed, 5 Nov 2025 00:57:07 -0800 Subject: [PATCH] fixing tests --- pwndbg/aglib/kernel/__init__.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pwndbg/aglib/kernel/__init__.py b/pwndbg/aglib/kernel/__init__.py index e0009f007..41ba9a9fc 100644 --- a/pwndbg/aglib/kernel/__init__.py +++ b/pwndbg/aglib/kernel/__init__.py @@ -116,14 +116,23 @@ def first_kernel_ro_page() -> pwndbg.lib.memory.Page | None: if base is None: return None + fallback_mappings = [] for mapping in pwndbg.aglib.kernel.vmmap.kernel_vmmap_pages(): if mapping.vaddr < base: continue if not mapping.read or mapping.write or mapping.execute: + fallback_mappings.append(mapping) continue result = next(pwndbg.search.search(b"Linux version", mappings=[mapping]), None) + if result: + return mapping + for mapping in fallback_mappings: + # this loop handles when the kernel has not finished initialization + # and the permission of the first ro page has not been properly set + result = next(pwndbg.search.search(b"Linux version", mappings=[mapping]), None) + if result: return mapping