From a932ea5616507ef90164c26dbd764da958777154 Mon Sep 17 00:00:00 2001 From: Iain Sandoe Date: Mon, 25 Mar 2019 00:11:45 +0000 Subject: [PATCH] [llvm] Add ppc64 to checkThreadCommand. --- llvm/lib/Object/MachOObjectFile.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp index 286953ac3aa..683fca37c40 100644 --- a/llvm/lib/Object/MachOObjectFile.cpp +++ b/llvm/lib/Object/MachOObjectFile.cpp @@ -1135,6 +1135,25 @@ static Error checkThreadCommand(const MachOObjectFile &Obj, "flavor number " + Twine(nflavor) + " in " + CmdName + " command"); } + } else if (cputype == MachO::CPU_TYPE_POWERPC64) { + if (flavor == MachO::PPC_THREAD_STATE64) { + if (count != MachO::PPC_THREAD_STATE64_COUNT) + return malformedError("load command " + Twine(LoadCommandIndex) + + " count not PPC_THREAD_STATE_COUNT for " + "flavor number " + Twine(nflavor) + " which is " + "a PPC_THREAD_STATE flavor in " + CmdName + + " command"); + if (state + sizeof(MachO::ppc_thread_state64_t) > end) + return malformedError("load command " + Twine(LoadCommandIndex) + + " PPC_THREAD_STATE extends past end of " + "command in " + CmdName + " command"); + state += sizeof(MachO::ppc_thread_state64_t); + } else { + return malformedError("load command " + Twine(LoadCommandIndex) + + " unknown flavor (" + Twine(flavor) + ") for " + "flavor number " + Twine(nflavor) + " in " + + CmdName + " command"); + } } else { return malformedError("unknown cputype (" + Twine(cputype) + ") load " "command " + Twine(LoadCommandIndex) + " for " +