From 51b170b470ed587f99a7c2a773e4464687f0d07a Mon Sep 17 00:00:00 2001 From: crueter Date: Mon, 4 Aug 2025 04:50:14 +0200 Subject: [cmake] refactor: Use CPM over submodules (#143) Transfers the majority of submodules and large externals to CPM, using source archives rather than full Git clones. Not only does this save massive amounts of clone and configure time, but dependencies are grabbed on-demand rather than being required by default. Additionally, CPM will (generally) automatically search for system dependencies, though certain dependencies have options to control this. Testing shows gains ranging from 5x to 10x in terms of overall clone/configure time. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/143 Reviewed-by: CamilleLaVey --- .../breakpad/src/processor/exploitability_linux.h | 93 ---------------------- 1 file changed, 93 deletions(-) delete mode 100644 externals/breakpad/src/processor/exploitability_linux.h (limited to 'externals/breakpad/src/processor/exploitability_linux.h') diff --git a/externals/breakpad/src/processor/exploitability_linux.h b/externals/breakpad/src/processor/exploitability_linux.h deleted file mode 100644 index 7603e45655..0000000000 --- a/externals/breakpad/src/processor/exploitability_linux.h +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2013 Google LLC -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google LLC nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// exploitability_linux.h: Linux specific exploitability engine. -// -// Provides a guess at the exploitability of the crash for the Linux -// platform given a minidump and process_state. -// -// Author: Matthew Riley - -#ifndef GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_LINUX_H_ -#define GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_LINUX_H_ - -#include "google_breakpad/common/breakpad_types.h" -#include "google_breakpad/processor/exploitability.h" - -namespace google_breakpad { - -class ExploitabilityLinux : public Exploitability { - public: - ExploitabilityLinux(Minidump* dump, - ProcessState* process_state); - - // Parameters are the minidump to analyze, the object representing process - // state, and whether to enable objdump disassembly. - // Enabling objdump will allow exploitability analysis to call out to - // objdump for diassembly. It is used to check the identity of the - // instruction that caused the program to crash. If there are any - // portability concerns, this should not be enabled. - ExploitabilityLinux(Minidump* dump, - ProcessState* process_state, - bool enable_objdump); - - virtual ExploitabilityRating CheckPlatformExploitability(); - - private: - friend class ExploitabilityLinuxTest; - - // Takes the address of the instruction pointer and returns - // whether the instruction pointer lies in a valid instruction region. - bool InstructionPointerInCode(uint64_t instruction_ptr); - - // Checks the exception that triggered the creation of the - // minidump and reports whether the exception suggests no exploitability. - bool BenignCrashTrigger(const MDRawExceptionStream* raw_exception_stream); - - // This method checks if the crash occurred during a write to read-only or - // invalid memory. It does so by checking if the instruction at the - // instruction pointer is a write instruction, and if the target of the - // instruction is at a spot in memory that prohibits writes. - bool EndedOnIllegalWrite(uint64_t instruction_ptr); - - // Checks if the stack pointer points to a memory mapping that is not - // labelled as the stack. - bool StackPointerOffStack(uint64_t stack_ptr); - - // Checks if the stack or heap are marked executable according - // to the memory mappings. - bool ExecutableStackOrHeap(); - - // Whether this exploitability engine is permitted to shell out to objdump - // to disassemble raw bytes. - bool enable_objdump_; -}; - -} // namespace google_breakpad - -#endif // GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_LINUX_H_ -- cgit v1.2.3