summaryrefslogtreecommitdiff
path: root/user/llvm18/macho32.patch
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2024-06-16 16:46:56 -0500
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2024-06-16 16:46:56 -0500
commite932f36c65e02632d8ffe916a44d444e6087abb5 (patch)
treebdd33079b71ba2e7ac576f6248426f8fb253c1d0 /user/llvm18/macho32.patch
parenta5f4a256412f75141511efb5087e9e8637966f07 (diff)
downloadpackages-e932f36c65e02632d8ffe916a44d444e6087abb5.tar.gz
packages-e932f36c65e02632d8ffe916a44d444e6087abb5.tar.bz2
packages-e932f36c65e02632d8ffe916a44d444e6087abb5.tar.xz
packages-e932f36c65e02632d8ffe916a44d444e6087abb5.zip
user/llvm18: New package
Functional, but not ready yet because of upstream bustage with M68k[1]. [1]: https://github.com/llvm/llvm-project/issues/94726
Diffstat (limited to 'user/llvm18/macho32.patch')
-rw-r--r--user/llvm18/macho32.patch17
1 files changed, 17 insertions, 0 deletions
diff --git a/user/llvm18/macho32.patch b/user/llvm18/macho32.patch
new file mode 100644
index 000000000..e18098372
--- /dev/null
+++ b/user/llvm18/macho32.patch
@@ -0,0 +1,17 @@
+Use integer offset math instead of pointer math to determine load
+command bounds.
+
+Upstream-URL: https://github.com/llvm/llvm-project/issues/56746
+
+--- llvm-14.0.6.src/lib/Object/MachOObjectFile.cpp.old 2022-06-22 16:46:24.000000000 +0000
++++ llvm-14.0.6.src/lib/Object/MachOObjectFile.cpp 2022-11-28 04:21:02.730211841 +0000
+@@ -192,7 +192,8 @@
+ getLoadCommandInfo(const MachOObjectFile &Obj, const char *Ptr,
+ uint32_t LoadCommandIndex) {
+ if (auto CmdOrErr = getStructOrErr<MachO::load_command>(Obj, Ptr)) {
+- if (CmdOrErr->cmdsize + Ptr > Obj.getData().end())
++ uint64_t Offset = Ptr - Obj.getData().begin();
++ if (CmdOrErr->cmdsize + Offset > Obj.getData().size())
+ return malformedError("load command " + Twine(LoadCommandIndex) +
+ " extends past end of file");
+ if (CmdOrErr->cmdsize < 8)