diff options
| author | Amlal <amlal@nekernel.org> | 2025-05-01 08:50:50 +0200 |
|---|---|---|
| committer | Amlal <amlal@nekernel.org> | 2025-05-01 08:53:36 +0200 |
| commit | 2ef7b73cff0d99d04e5091e98b3988532e2b1063 (patch) | |
| tree | e3d0289661dcc90bb966ef338e18a53600abcd4b /dev/kernel/KernelKit | |
| parent | 72fa8a81498a53491950f92d9e96fbe6dd65cc04 (diff) | |
kernel: mmap the blob to VMAddress in PEFCodeMgr, alongside other fixes regarding memory leaks.
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/KernelKit')
| -rw-r--r-- | dev/kernel/KernelKit/IPEFDylibObject.h | 2 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/LoaderInterface.h | 2 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/PECodeMgr.h | 2 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/PEF.h | 2 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/PEFCodeMgr.h | 2 |
5 files changed, 5 insertions, 5 deletions
diff --git a/dev/kernel/KernelKit/IPEFDylibObject.h b/dev/kernel/KernelKit/IPEFDylibObject.h index 4031bd85..42ed1830 100644 --- a/dev/kernel/KernelKit/IPEFDylibObject.h +++ b/dev/kernel/KernelKit/IPEFDylibObject.h @@ -62,7 +62,7 @@ class IPEFDylibObject final NE_DYLIB_OBJECT { if (symbol_name == nullptr || *symbol_name == 0) return nullptr; if (len > kPathLen || len < 1) return nullptr; - auto ret = reinterpret_cast<SymbolType>(fLoader->FindSymbol(symbol_name, kind)); + auto ret = reinterpret_cast<SymbolType>(fLoader->FindSymbol(symbol_name, kind).Leak().Leak()); if (!ret) { if (kind == kPefCode) return (VoidPtr) &__zka_pure_call; diff --git a/dev/kernel/KernelKit/LoaderInterface.h b/dev/kernel/KernelKit/LoaderInterface.h index 42046a53..f6a1b7e9 100644 --- a/dev/kernel/KernelKit/LoaderInterface.h +++ b/dev/kernel/KernelKit/LoaderInterface.h @@ -27,6 +27,6 @@ class LoaderInterface { virtual _Output const Char* MIME() = 0; virtual _Output const Char* Path() = 0; virtual _Output ErrorOr<VoidPtr> FindStart() = 0; - virtual _Output VoidPtr FindSymbol(_Input const Char* name, _Input Int32 kind) = 0; + virtual _Output ErrorOr<VoidPtr> FindSymbol(_Input const Char* name, _Input Int32 kind) = 0; }; } // namespace Kernel diff --git a/dev/kernel/KernelKit/PECodeMgr.h b/dev/kernel/KernelKit/PECodeMgr.h index 860f3426..05a2674c 100644 --- a/dev/kernel/KernelKit/PECodeMgr.h +++ b/dev/kernel/KernelKit/PECodeMgr.h @@ -55,7 +55,7 @@ class PE32Loader : public LoaderInterface { public: ErrorOr<VoidPtr> FindStart() override; - VoidPtr FindSymbol(const Char* name, Int32 kind) override; + ErrorOr<VoidPtr> FindSymbol(const Char* name, Int32 kind) override; ErrorOr<VoidPtr> GetBlob() override; public: diff --git a/dev/kernel/KernelKit/PEF.h b/dev/kernel/KernelKit/PEF.h index 03398b48..9381e491 100644 --- a/dev/kernel/KernelKit/PEF.h +++ b/dev/kernel/KernelKit/PEF.h @@ -98,7 +98,7 @@ typedef struct PEFCommandHeader final { UInt32 Flags; /* container flags */ UInt16 Kind; /* container kind */ UIntPtr Offset; /* content offset */ - UIntPtr VMAddress; /* VM offset */ + UIntPtr VMAddress; /* VM offset */ SizeT Size; /* content Size */ } PACKED PEFCommandHeader; diff --git a/dev/kernel/KernelKit/PEFCodeMgr.h b/dev/kernel/KernelKit/PEFCodeMgr.h index b3ca43d0..a637892f 100644 --- a/dev/kernel/KernelKit/PEFCodeMgr.h +++ b/dev/kernel/KernelKit/PEFCodeMgr.h @@ -42,7 +42,7 @@ class PEFLoader : public LoaderInterface { public: ErrorOr<VoidPtr> FindStart() override; - VoidPtr FindSymbol(const Char* name, Int32 kind) override; + ErrorOr<VoidPtr> FindSymbol(const Char* name, Int32 kind) override; ErrorOr<VoidPtr> GetBlob() override; public: |
