[OE-core] [PATCH 22/42] linux-yocto: Fix build on ppc with gcc-6
Khem Raj
raj.khem at gmail.com
Wed May 11 17:35:25 UTC 2016
Signed-off-by: Khem Raj <raj.khem at gmail.com>
---
...ace-Fix-out-of-bounds-array-access-warnin.patch | 50 ++++++++++++++++++++++
meta/recipes-kernel/linux/linux-yocto_4.4.bb | 4 +-
2 files changed, 53 insertions(+), 1 deletion(-)
create mode 100644 meta/recipes-kernel/linux/linux-yocto/0001-powerpc-ptrace-Fix-out-of-bounds-array-access-warnin.patch
diff --git a/meta/recipes-kernel/linux/linux-yocto/0001-powerpc-ptrace-Fix-out-of-bounds-array-access-warnin.patch b/meta/recipes-kernel/linux/linux-yocto/0001-powerpc-ptrace-Fix-out-of-bounds-array-access-warnin.patch
new file mode 100644
index 0000000..05315ed
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-yocto/0001-powerpc-ptrace-Fix-out-of-bounds-array-access-warnin.patch
@@ -0,0 +1,50 @@
+From 32acc1d9a5738b02e8815047af8886978aa40ead Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem at gmail.com>
+Date: Mon, 25 Apr 2016 05:47:01 +0000
+Subject: [PATCH V2] powerpc/ptrace: Fix out of bounds array access warning
+
+gcc-6 correctly warns about a out of bounds access
+
+arch/powerpc/kernel/ptrace.c:407:24: warning: index 32 denotes an offset greater than size of 'u64[32][1] {aka long long unsigned int[32][1]}' [-Warray-bounds]
+ offsetof(struct thread_fp_state, fpr[32][0]));
+ ^
+
+check the end of array instead of beginning of next element to fix this
+
+Signed-off-by: Khem Raj <raj.khem at gmail.com>
+Cc: Kees Cook <keescook at chromium.org>
+Cc: Michael Ellerman <mpe at ellerman.id.au>
+Cc: Segher Boessenkool <segher at kernel.crashing.org>
+---
+Changes from v1 to v2:
+
+- Check for fpr[32] instead of fpr[31][1]
+
+ arch/powerpc/kernel/ptrace.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
+index 737c0d0..b38fd08 100644
+--- a/arch/powerpc/kernel/ptrace.c
++++ b/arch/powerpc/kernel/ptrace.c
+@@ -376,7 +376,7 @@ static int fpr_get(struct task_struct *target, const struct user_regset *regset,
+
+ #else
+ BUILD_BUG_ON(offsetof(struct thread_fp_state, fpscr) !=
+- offsetof(struct thread_fp_state, fpr[32][0]));
++ offsetof(struct thread_fp_state, fpr[32]));
+
+ return user_regset_copyout(&pos, &count, &kbuf, &ubuf,
+ &target->thread.fp_state, 0, -1);
+@@ -404,7 +404,7 @@ static int fpr_set(struct task_struct *target, const struct user_regset *regset,
+ return 0;
+ #else
+ BUILD_BUG_ON(offsetof(struct thread_fp_state, fpscr) !=
+- offsetof(struct thread_fp_state, fpr[32][0]));
++ offsetof(struct thread_fp_state, fpr[32]));
+
+ return user_regset_copyin(&pos, &count, &kbuf, &ubuf,
+ &target->thread.fp_state, 0, -1);
+--
+1.9.1
+
diff --git a/meta/recipes-kernel/linux/linux-yocto_4.4.bb b/meta/recipes-kernel/linux/linux-yocto_4.4.bb
index b74903e..fbb592a 100644
--- a/meta/recipes-kernel/linux/linux-yocto_4.4.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_4.4.bb
@@ -22,7 +22,9 @@ SRCREV_machine ?= "b18090556c1d1b449233cd555c27a04d38272d6d"
SRCREV_meta ?= "9ab4787fe2aea2ae0fcc31a5e067eaba19ef64c8"
SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.4.git;name=machine;branch=${KBRANCH}; \
- git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.4;destsuffix=${KMETA}"
+ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.4;destsuffix=${KMETA} \
+ file://0001-powerpc-ptrace-Fix-out-of-bounds-array-access-warnin.patch \
+"
LINUX_VERSION ?= "4.4.3"
--
2.8.2
More information about the Openembedded-core
mailing list