+--- PRoot-5.1.0/src/execve/enter.c 2014-12-15 15:18:11.000000000 +0100
++++ src/src/execve/enter.c 2016-03-20 12:05:08.013426156 +0100
+@@ -454,10 +454,10 @@
+ }
+
+ extern unsigned char _binary_loader_exe_start;
+-extern unsigned char _binary_loader_exe_size;
++extern unsigned char _binary_loader_exe_end;
+
+ extern unsigned char WEAK _binary_loader_m32_exe_start;
+-extern unsigned char WEAK _binary_loader_m32_exe_size;
++extern unsigned char WEAK _binary_loader_m32_exe_end;
+
+ /**
+ * Extract the built-in loader. This function returns NULL if an
+@@ -483,11 +483,11 @@
+
+ if (wants_32bit_version) {
+ start = (void *) &_binary_loader_m32_exe_start;
+- size = (size_t) &_binary_loader_m32_exe_size;
++ size = (size_t) (&_binary_loader_m32_exe_end - &_binary_loader_m32_exe_start);
+ }
+ else {
+ start = (void *) &_binary_loader_exe_start;
+- size = (size_t) &_binary_loader_exe_size;
++ size = (size_t) (&_binary_loader_exe_end - &_binary_loader_exe_start);
+ }
+
+ status2 = write(fd, start, size);
+@@ -645,8 +645,10 @@
+
+ /* An ELF interpreter is supposed to be
+ * standalone. */
+- if (tracee->load_info->interp->interp != NULL)
+- return -EINVAL;
++ if (tracee->load_info->interp->interp != NULL) {
++ TALLOC_FREE(tracee->load_info->interp->interp);
++ // TODO: Print warning?
++ }
+ }
+
+ compute_load_addresses(tracee);