mosh: Fix /bin/sh -> $PREFIX/bin/sh in mosh.pl
[termux-packages] / packages / proot / src-execve-enter.c.patch
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);