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