From 2469563b26b00a262bb3c0bc0b9a329f0fca8047 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Sat, 30 Jan 2021 16:11:32 -0800 Subject: [PATCH] Mach_ARM64_thread_state padded to (0 mod 8) https://github.com/upx/upx/issues/446 (partial) modified: p_mach.cpp modified: p_mach.h modified: p_mach_enum.h --- src/p_mach.cpp | 2 +- src/p_mach.h | 1 + src/p_mach_enum.h | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/p_mach.cpp b/src/p_mach.cpp index e0074bca..b6d91b6b 100644 --- a/src/p_mach.cpp +++ b/src/p_mach.cpp @@ -204,7 +204,7 @@ PackMachARMEL::PackMachARMEL(InputFile *f) : super(f, Mach_header::CPU_TYPE_ARM, { } PackMachARM64EL::PackMachARM64EL(InputFile *f) : super(f, Mach_header::CPU_TYPE_ARM64, - Mach_header::MH_EXECUTE, (unsigned)Mach_thread_command::ARM_THREAD_STATE, + Mach_header::MH_EXECUTE, (unsigned)Mach_thread_command::ARM_THREAD_STATE64, sizeof(Mach_ARM64_thread_state)>>2, sizeof(threado)) { } diff --git a/src/p_mach.h b/src/p_mach.h index ac6fab5b..5ba68e14 100644 --- a/src/p_mach.h +++ b/src/p_mach.h @@ -512,6 +512,7 @@ template __packed_struct(Mach_ARM64_thread_state) Xword x28, fp, lr, sp; Xword pc; Word cpsr; + Word pad; // to (0 mod 8) __packed_struct_end() } // namespace N_Mach64 diff --git a/src/p_mach_enum.h b/src/p_mach_enum.h index 98acc19a..02ac171c 100644 --- a/src/p_mach_enum.h +++ b/src/p_mach_enum.h @@ -157,6 +157,7 @@ x86_THREAD_STATE64 = 4, i386_OLD_THREAD_STATE = -1, ARM_THREAD_STATE = 1 + , ARM_THREAD_STATE64 = 6 // also ARM_THREAD_STATE64_COUNT 68 }; #endif /*}*/