patches/strace/4.5.15/120-fix-arm-bad-syscall.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Nov 04 19:22:29 2011 +0100 (2011-11-04)
changeset 2735 f09ed6dd71a3
parent 746 b150d6f590fc
permissions -rw-r--r--
kernel/linux: fix packed attribute in exported headers

UBI headers (and maybe others as well) are broken because the 'packed'
attribute is not sanitised when the headers are exported to userspace.

Apply the fix from upstream:
https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=f210735fe2f17a6225432ee3d1239bcf23a8659c

(Also, buildroot does the same, BTW)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@257
     1
diff -dur strace-4.5.15.orig/syscall.c strace-4.5.15/syscall.c
yann@257
     2
--- strace-4.5.15.orig/syscall.c	2006-12-21 23:13:33.000000000 +0100
yann@257
     3
+++ strace-4.5.15/syscall.c	2007-07-14 19:21:44.000000000 +0200
yann@257
     4
@@ -1045,6 +1045,15 @@
yann@257
     5
 		/*
yann@257
     6
 		 * Note: we only deal with only 32-bit CPUs here.
yann@257
     7
 		 */
yann@257
     8
+
yann@257
     9
+		if (!(tcp->flags & TCB_INSYSCALL) &&
yann@257
    10
+		    (tcp->flags & TCB_WAITEXECVE)) {
yann@257
    11
+			/* caught a fake syscall from the execve's exit */
yann@257
    12
+			tcp->flags &= ~TCB_WAITEXECVE;
yann@257
    13
+			return 0;
yann@257
    14
+		}
yann@257
    15
+ 
yann@257
    16
+
yann@257
    17
 		if (regs.ARM_cpsr & 0x20) {
yann@257
    18
 			/*
yann@257
    19
 			 * Get the Thumb-mode system call number