chiark / gitweb /
Bump proot build revision for package update
[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);