Fix recovery of readlink() when /proc/self/exe is missing
https://github.com/upx/upx/issues/897 modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh modified: stub/src/arm.v4a-linux.elf-fold.S plus generated .h
This commit is contained in:
Generated
+3
-3
@@ -33,8 +33,8 @@
|
||||
/* clang-format off */
|
||||
|
||||
#define STUB_ARM_V4A_LINUX_ELF_FOLD_SIZE 36672
|
||||
#define STUB_ARM_V4A_LINUX_ELF_FOLD_ADLER32 0x142e9fd4
|
||||
#define STUB_ARM_V4A_LINUX_ELF_FOLD_CRC32 0x422aa73a
|
||||
#define STUB_ARM_V4A_LINUX_ELF_FOLD_ADLER32 0x0cafa044
|
||||
#define STUB_ARM_V4A_LINUX_ELF_FOLD_CRC32 0xf1684c51
|
||||
|
||||
unsigned char stub_arm_v4a_linux_elf_fold[36672] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
@@ -63,7 +63,7 @@ unsigned char stub_arm_v4a_linux_elf_fold[36672] = {
|
||||
/* 0x0170 */ 122, 0, 0, 26,144, 0, 79,226, 0, 16,160,227, 5,112,160,227,
|
||||
/* 0x0180 */ 0, 0, 0,239, 0,128,160,225, 1, 42,160,227, 9, 16,160,225,
|
||||
/* 0x0190 */ 172, 0, 79,226, 1, 32, 66,226, 85,112,160,227, 0, 0, 0,239,
|
||||
/* 0x01a0 */ 1, 10,112,227, 0, 16,160, 33, 14, 0,160, 35, 0, 32,129,224,
|
||||
/* 0x01a0 */ 1, 10,112,227,192, 16, 79, 34, 14, 0,160, 35, 0, 32,129,224,
|
||||
/* 0x01b0 */ 6, 0,160,225, 0, 48,160,227, 1, 48, 96,229, 1, 48,114,229,
|
||||
/* 0x01c0 */ 1, 48, 96,229, 2, 0, 81,225, 96, 0, 0, 26, 61, 48,160,227,
|
||||
/* 0x01d0 */ 1, 48, 96,229, 32, 48,160,227, 1, 48, 96,229, 1, 48, 96,229,
|
||||
|
||||
Generated
+3
-3
@@ -33,8 +33,8 @@
|
||||
/* clang-format off */
|
||||
|
||||
#define STUB_ARM_V5A_LINUX_ELF_FOLD_SIZE 36819
|
||||
#define STUB_ARM_V5A_LINUX_ELF_FOLD_ADLER32 0x31f9c1f4
|
||||
#define STUB_ARM_V5A_LINUX_ELF_FOLD_CRC32 0x854fb9ef
|
||||
#define STUB_ARM_V5A_LINUX_ELF_FOLD_ADLER32 0x6acac264
|
||||
#define STUB_ARM_V5A_LINUX_ELF_FOLD_CRC32 0x5d3f8524
|
||||
|
||||
unsigned char stub_arm_v5a_linux_elf_fold[36819] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
@@ -63,7 +63,7 @@ unsigned char stub_arm_v5a_linux_elf_fold[36819] = {
|
||||
/* 0x0170 */ 122, 0, 0, 26,144, 0, 79,226, 0, 16,160,227, 5,112,160,227,
|
||||
/* 0x0180 */ 0, 0, 0,239, 0,128,160,225, 1, 42,160,227, 9, 16,160,225,
|
||||
/* 0x0190 */ 172, 0, 79,226, 1, 32, 66,226, 85,112,160,227, 0, 0, 0,239,
|
||||
/* 0x01a0 */ 1, 10,112,227, 0, 16,160, 33, 14, 0,160, 35, 0, 32,129,224,
|
||||
/* 0x01a0 */ 1, 10,112,227,192, 16, 79, 34, 14, 0,160, 35, 0, 32,129,224,
|
||||
/* 0x01b0 */ 6, 0,160,225, 0, 48,160,227, 1, 48, 96,229, 1, 48,114,229,
|
||||
/* 0x01c0 */ 1, 48, 96,229, 2, 0, 81,225, 96, 0, 0, 26, 61, 48,160,227,
|
||||
/* 0x01d0 */ 1, 48, 96,229, 32, 48,160,227, 1, 48, 96,229, 1, 48, 96,229,
|
||||
|
||||
Generated
+3
-3
@@ -33,8 +33,8 @@
|
||||
/* clang-format off */
|
||||
|
||||
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_SIZE 36689
|
||||
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_ADLER32 0x79d3a405
|
||||
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_CRC32 0x96b748cf
|
||||
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_ADLER32 0x7736a475
|
||||
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_CRC32 0x9006bee9
|
||||
|
||||
unsigned char stub_armeb_v4a_linux_elf_fold[36689] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
@@ -63,7 +63,7 @@ unsigned char stub_armeb_v4a_linux_elf_fold[36689] = {
|
||||
/* 0x0170 */ 26, 0, 0,122,226, 79, 0,144,227,160, 16, 0,227,160,112, 5,
|
||||
/* 0x0180 */ 239, 0, 0, 0,225,160,128, 0,227,160, 42, 1,225,160, 16, 9,
|
||||
/* 0x0190 */ 226, 79, 0,172,226, 66, 32, 1,227,160,112, 85,239, 0, 0, 0,
|
||||
/* 0x01a0 */ 227,112, 10, 1, 33,160, 16, 0, 35,160, 0, 14,224,129, 32, 0,
|
||||
/* 0x01a0 */ 227,112, 10, 1, 34, 79, 16,192, 35,160, 0, 14,224,129, 32, 0,
|
||||
/* 0x01b0 */ 225,160, 0, 6,227,160, 48, 0,229, 96, 48, 1,229,114, 48, 1,
|
||||
/* 0x01c0 */ 229, 96, 48, 1,225, 81, 0, 2, 26, 0, 0, 96,227,160, 48, 61,
|
||||
/* 0x01d0 */ 229, 96, 48, 1,227,160, 48, 32,229, 96, 48, 1,229, 96, 48, 1,
|
||||
|
||||
@@ -199,7 +199,7 @@ r_pse .req r8
|
||||
sub arg3,arg3,#1 @ room for null terminator
|
||||
do_sys7t __NR_readlink // ENOENT is OK
|
||||
cmn r0,#1<<12
|
||||
movcs r1,arg1 @ FIXME? "/proc/self/exe"
|
||||
adrcs r1,proc_self_exe
|
||||
movcs r0,#14 @ strlen("/proc/self/exe")
|
||||
link_ok:
|
||||
add r2,r1,r0 @ end
|
||||
|
||||
Reference in New Issue
Block a user