Update SDK build tools to 24.0.1
[termux-packages] / packages / proot / src-execve-enter.c.patch
CommitLineData
788935ae 1--- PRoot-5.1.0/src/execve/enter.c 2014-12-15 15:18:11.000000000 +0100
2+++ src/src/execve/enter.c 2016-03-20 12:05:08.013426156 +0100
3@@ -454,10 +454,10 @@
4 }
5
6 extern unsigned char _binary_loader_exe_start;
7-extern unsigned char _binary_loader_exe_size;
8+extern unsigned char _binary_loader_exe_end;
9
10 extern unsigned char WEAK _binary_loader_m32_exe_start;
11-extern unsigned char WEAK _binary_loader_m32_exe_size;
12+extern unsigned char WEAK _binary_loader_m32_exe_end;
13
14 /**
15 * Extract the built-in loader. This function returns NULL if an
16@@ -483,11 +483,11 @@
17
18 if (wants_32bit_version) {
19 start = (void *) &_binary_loader_m32_exe_start;
20- size = (size_t) &_binary_loader_m32_exe_size;
21+ size = (size_t) (&_binary_loader_m32_exe_end - &_binary_loader_m32_exe_start);
22 }
23 else {
24 start = (void *) &_binary_loader_exe_start;
25- size = (size_t) &_binary_loader_exe_size;
26+ size = (size_t) (&_binary_loader_exe_end - &_binary_loader_exe_start);
27 }
28
29 status2 = write(fd, start, size);
30@@ -645,8 +645,10 @@
31
32 /* An ELF interpreter is supposed to be
33 * standalone. */
34- if (tracee->load_info->interp->interp != NULL)
35- return -EINVAL;
36+ if (tracee->load_info->interp->interp != NULL) {
37+ TALLOC_FREE(tracee->load_info->interp->interp);
38+ // TODO: Print warning?
39+ }
40 }
41
42 compute_load_addresses(tracee);