mips memfd_create() and syscall error handling

https://github.com/upx/upx/issues/895
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/mipsel.r3000-linux.elf-entry.S
	modified:   stub/src/mipsel.r3000-linux.elf-fold.S
           plus generated .h .dump .map
This commit is contained in:
John Reiser
2025-03-13 08:07:26 -07:00
parent c2da21ba4e
commit 6f650ca16f
11 changed files with 2283 additions and 2325 deletions
+68 -76
View File
@@ -1,5 +1,5 @@
/* mips.r3000-linux.elf-entry.h
created from mips.r3000-linux.elf-entry.bin, 2032 (0x7f0) bytes
created from mips.r3000-linux.elf-entry.bin, 1897 (0x769) bytes
This file is part of the UPX executable compressor.
@@ -32,11 +32,11 @@
/* clang-format off */
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_SIZE 2032
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_ADLER32 0x8eb893aa
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_CRC32 0x9db95a15
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_SIZE 1897
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_ADLER32 0x3a347ddd
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_CRC32 0xddfc99bb
unsigned char stub_mips_r3000_linux_elf_entry[2032] = {
unsigned char stub_mips_r3000_linux_elf_entry[1897] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 1, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 0, 0, 3, 60, 0, 0, 0, 1, 0, 52, 0, 0, 0, 0, 0, 40,
@@ -64,22 +64,22 @@ unsigned char stub_mips_r3000_linux_elf_entry[2032] = {
/* 0x0180 */ 175,184, 0, 0, 0, 96, 32, 33, 0,195, 40, 35,172,229, 0, 0,
/* 0x0190 */ 36, 6, 0, 3, 36, 2, 16, 51, 0, 0, 0, 12,143,162, 0, 0,
/* 0x01a0 */ 3,224, 0, 8, 39,189, 0, 4, 39,189,255,224,175,188, 0, 16,
/* 0x01b0 */ 143,209,255,244, 39,213,255,244, 2,177,168, 34, 4, 17, 0, 2,
/* 0x01c0 */ 3,224, 32, 33,117,112,120, 0, 0, 0, 40, 33, 36, 2, 17, 2,
/* 0x01d0 */ 0, 0, 0, 12, 0, 64,184, 33,142,147, 0, 0, 3,160,240, 33,
/* 0x01e0 */ 175,179, 0, 28, 36, 1,255,248, 3,179,232, 35, 3,161,232, 36,
/* 0x01f0 */ 142,144,255,252, 36, 1,255,252, 2, 1,128, 36,130,136, 0, 8,
/* 0x0200 */ 175,211, 0, 24, 39,199, 0, 24, 3,160, 48, 33,142,133, 0, 4,
/* 0x0210 */ 4, 17, 0, 1, 38,132, 0, 12,175,188, 0, 0,147,161, 0, 0,
/* 0x0220 */ 143,163, 0, 36, 16, 32, 0, 3,143,161, 0, 28,175,163, 0, 24,
/* 0x0230 */ 175,161, 0, 16, 2, 96, 48, 33, 3,160, 40, 33, 2,224, 32, 33,
/* 0x0240 */ 36, 2, 15,164, 0, 0, 0, 12, 3,192,232, 33, 39,189,255,232,
/* 0x0250 */ 175,160, 0, 20,175,183, 0, 16, 36, 7, 0, 1, 36, 6, 0, 5,
/* 0x0260 */ 142,133, 0, 0, 0, 0, 32, 33, 36, 2, 15,250, 0, 0, 0, 12,
/* 0x0270 */ 39,189, 0, 24,175,162, 0, 24, 36, 95, 0, 8, 2,224, 32, 33,
/* 0x0280 */ 36, 2, 15,166, 0, 0, 0, 12, 3,224, 0, 8, 2,176,128, 33,
/* 0x0290 */ 36, 2, 17, 2, 0, 0, 0, 12, 3,224, 0, 8, 0, 0, 0, 0,
/* 0x02a0 */ 36, 2, 15,253, 0, 0, 0, 12, 3,224, 0, 8, 0, 0, 0, 0,
/* 0x01b0 */ 143,209,255,244, 39,213,255,244, 2,177,168, 34, 36, 5, 0, 16,
/* 0x01c0 */ 4, 17, 0, 2, 3,224, 32, 33,117,112,120, 0, 36, 2, 17, 2,
/* 0x01d0 */ 0, 0, 0, 12, 16,224, 0, 6, 0, 64,184, 33, 16,160, 0, 3,
/* 0x01e0 */ 36, 69,255,234, 16,160,255,246, 0, 0, 0, 0, 0, 0, 0, 13,
/* 0x01f0 */ 142,147, 0, 0, 3,160,240, 33,175,179, 0, 28, 36, 1,255,248,
/* 0x0200 */ 3,179,232, 35, 3,161,232, 36,142,144,255,252, 36, 1,255,252,
/* 0x0210 */ 2, 1,128, 36,130,136, 0, 8,175,211, 0, 24, 39,199, 0, 24,
/* 0x0220 */ 3,160, 48, 33,142,133, 0, 4, 4, 17, 0, 1, 38,132, 0, 12,
/* 0x0230 */ 175,188, 0, 0,147,161, 0, 0,143,163, 0, 36, 16, 32, 0, 3,
/* 0x0240 */ 143,161, 0, 28,175,163, 0, 24,175,161, 0, 16, 2, 96, 48, 33,
/* 0x0250 */ 3,160, 40, 33, 2,224, 32, 33, 36, 2, 15,164, 0, 0, 0, 12,
/* 0x0260 */ 20,224,255,226, 3,192,232, 33, 39,189,255,232,175,160, 0, 20,
/* 0x0270 */ 175,183, 0, 16, 36, 7, 0, 1, 36, 6, 0, 5,142,133, 0, 0,
/* 0x0280 */ 0, 0, 32, 33, 36, 2, 15,250, 0, 0, 0, 12, 20,224,255,215,
/* 0x0290 */ 39,189, 0, 24,175,162, 0, 24, 36, 95, 0, 8, 2,224, 32, 33,
/* 0x02a0 */ 36, 2, 15,166, 0, 0, 0, 12, 3,224, 0, 8, 2,176,128, 33,
/* 0x02b0 */ 140,131, 0, 0, 36,132, 0, 4, 20, 96,255,253, 0,128,176, 33,
/* 0x02c0 */ 3,224, 0, 8, 36, 8, 0, 6, 4, 17,255,249, 39,164, 0, 4,
/* 0x02d0 */ 4, 17,255,247, 2,192, 32, 33,140,131, 0, 0, 36,132, 0, 8,
@@ -94,74 +94,66 @@ unsigned char stub_mips_r3000_linux_elf_entry[2032] = {
/* 0x0360 */ 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 6,
/* 0x0370 */ 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 1,116, 0, 0, 0, 0,
/* 0x0380 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 27,
/* 0x0390 */ 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 40,
/* 0x0390 */ 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,240,
/* 0x03a0 */ 0, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 4,
/* 0x03b0 */ 0, 0, 0, 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 6,
/* 0x03c0 */ 0, 0, 0, 0, 0, 0, 1,168, 0, 0, 1, 92, 0, 0, 0, 0,
/* 0x03d0 */ 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 40,
/* 0x03e0 */ 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 48,
/* 0x03e0 */ 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,248,
/* 0x03f0 */ 0, 0, 0, 16, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 4,
/* 0x0400 */ 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 0,
/* 0x0410 */ 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 53, 0, 0, 0, 0,
/* 0x0420 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1,
/* 0x0430 */ 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,124,
/* 0x0440 */ 0, 0, 0,112, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 4,
/* 0x0440 */ 0, 0, 0, 80, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 4,
/* 0x0450 */ 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 0,
/* 0x0460 */ 0, 0, 0, 0, 0, 0, 4,236, 0, 0, 0, 57, 0, 0, 0, 0,
/* 0x0460 */ 0, 0, 0, 0, 0, 0, 4,204, 0, 0, 0, 34, 0, 0, 0, 0,
/* 0x0470 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0480 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
/* 0x0490 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0, 10,
/* 0x04a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 19,
/* 0x04b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 1, 0, 0, 0, 26,
/* 0x04c0 */ 0, 0, 0,232, 0, 0, 0, 0, 17, 0, 0, 3, 0, 0, 0, 39,
/* 0x04d0 */ 0, 0, 0,248, 0, 0, 0, 0, 17, 0, 0, 3, 0, 0, 0, 49,
/* 0x04e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 69, 76, 70,
/* 0x04f0 */ 77, 65, 73, 78, 88, 0, 69, 76, 70, 77, 65, 73, 78, 90, 0, 95,
/* 0x0500 */ 115,116, 97,114,116, 0,109,101,109,102,100, 95, 99,114,101, 97,
/* 0x0510 */ 116,101, 0,102,116,114,117,110, 99, 97,116,101, 0, 79, 95, 66,
/* 0x0520 */ 73, 78, 70, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 10,
/* 0x0530 */ 0, 0, 0,104, 0, 0, 1, 10, 0, 0, 1, 88, 0, 0, 6, 2,
/* 0x0540 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51,
/* 0x0550 */ 50, 45, 98,105,103,109,105,112,115, 10, 10, 83,101, 99,116,105,
/* 0x0560 */ 111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32,
/* 0x0570 */ 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32,
/* 0x0580 */ 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32,
/* 0x0590 */ 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,
/* 0x05a0 */ 108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69,
/* 0x05b0 */ 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 49, 55,
/* 0x05c0 */ 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 52, 32, 32, 50, 42,
/* 0x05d0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49,
/* 0x05e0 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48,
/* 0x05f0 */ 49, 53, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 97, 56, 32,
/* 0x0600 */ 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
/* 0x0610 */ 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48,
/* 0x0620 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69,
/* 0x0630 */ 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73,
/* 0x0640 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x0650 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69,
/* 0x0660 */ 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x0670 */ 32,103, 32, 32, 32, 32, 32, 79, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x0680 */ 88, 32, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48,
/* 0x0690 */ 48,101, 56, 32,103, 32, 32, 32, 32, 32, 79, 32, 69, 76, 70, 77,
/* 0x06a0 */ 65, 73, 78, 90, 32, 48, 32,109,101,109,102,100, 95, 99,114,101,
/* 0x06b0 */ 97,116,101, 10, 48, 48, 48, 48, 48, 48,102, 56, 32,103, 32, 32,
/* 0x06c0 */ 32, 32, 32, 79, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,
/* 0x06d0 */ 102,116,114,117,110, 99, 97,116,101, 10, 48, 48, 48, 48, 48, 48,
/* 0x06e0 */ 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42,
/* 0x06f0 */ 32, 48, 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, 69, 76, 79,
/* 0x0700 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70,
/* 0x0710 */ 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79,
/* 0x0720 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
/* 0x0730 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
/* 0x0740 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95,
/* 0x0750 */ 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65,
/* 0x0760 */ 73, 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
/* 0x0770 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70,
/* 0x0780 */ 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32,
/* 0x0790 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x07a0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 54,
/* 0x07b0 */ 56, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32,
/* 0x07c0 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48,
/* 0x07d0 */ 48, 48, 49, 53, 56, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32,
/* 0x07e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
/* 0x04c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 69, 76, 70,
/* 0x04d0 */ 77, 65, 73, 78, 88, 0, 69, 76, 70, 77, 65, 73, 78, 90, 0, 95,
/* 0x04e0 */ 115,116, 97,114,116, 0, 79, 95, 66, 73, 78, 70, 79, 0, 0, 0,
/* 0x04f0 */ 0, 0, 0, 0, 0, 0, 2, 10, 0, 0, 0,128, 0, 0, 1, 10,
/* 0x0500 */ 0, 0, 1, 88, 0, 0, 4, 2,102,105,108,101, 32,102,111,114,
/* 0x0510 */ 109, 97,116, 32,101,108,102, 51, 50, 45, 98,105,103,109,105,112,
/* 0x0520 */ 115, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120,
/* 0x0530 */ 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,
/* 0x0540 */ 105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32,
/* 0x0550 */ 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,
/* 0x0560 */ 101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,
/* 0x0570 */ 103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32,
/* 0x0580 */ 32, 32, 32, 32, 32, 48, 49, 55, 52, 32, 32, 48, 32, 32, 48, 32,
/* 0x0590 */ 32, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x05a0 */ 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x05b0 */ 90, 32, 32, 32, 32, 32, 32, 48, 49, 53, 99, 32, 32, 48, 32, 32,
/* 0x05c0 */ 48, 32, 32, 48, 49, 97, 56, 32, 32, 50, 42, 42, 50, 32, 32, 67,
/* 0x05d0 */ 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84,
/* 0x05e0 */ 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x05f0 */ 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32,
/* 0x0600 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48,
/* 0x0610 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
/* 0x0620 */ 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10,
/* 0x0630 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 79,
/* 0x0640 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,
/* 0x0650 */ 114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32,
/* 0x0660 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 79, 95, 66, 73,
/* 0x0670 */ 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
/* 0x0680 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70,
/* 0x0690 */ 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32,
/* 0x06a0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x06b0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x06c0 */ 48, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32,
/* 0x06d0 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69,
/* 0x06e0 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
/* 0x06f0 */ 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58,
/* 0x0700 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x0710 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x0720 */ 69, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 77, 73, 80,
/* 0x0730 */ 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70,
/* 0x0740 */ 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 53, 56, 32, 82,
/* 0x0750 */ 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0760 */ 32, 79, 95, 66, 73, 78, 70, 79, 10
};