summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/KernelKit
diff options
context:
space:
mode:
authorAmlal <amlal@nekernel.org>2025-05-01 08:50:50 +0200
committerAmlal <amlal@nekernel.org>2025-05-01 08:53:36 +0200
commit2ef7b73cff0d99d04e5091e98b3988532e2b1063 (patch)
treee3d0289661dcc90bb966ef338e18a53600abcd4b /dev/kernel/KernelKit
parent72fa8a81498a53491950f92d9e96fbe6dd65cc04 (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.h2
-rw-r--r--dev/kernel/KernelKit/LoaderInterface.h2
-rw-r--r--dev/kernel/KernelKit/PECodeMgr.h2
-rw-r--r--dev/kernel/KernelKit/PEF.h2
-rw-r--r--dev/kernel/KernelKit/PEFCodeMgr.h2
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: