Skip to contentSkip to conversation

board/arcturus/ppc-ucp1020 new gcc-6.x Linux kernel build fix

PATCH New Oleksandr Zhadan 2 participants 6 messages Jul 13, 2017 – Jul 15, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 board/arcturus/ppc-ucp1020 new gcc-6.x Linux kernel build fix

Add the Linux-3.18 patch "powerpc/ptrace: Fix out of bounds array access warning" to the board/arcturus/ppc-ucp1020 BSP

" 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"

---
 ...ce-Fix-out-of-bounds-array-access-warning.patch | 52 ++++++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 board/arcturus/ppc-ucp1020/patches/linux/0003-powerpc-ptrace-Fix-out-of-bounds-array-access-warning.patch
board/arcturus/ppc-ucp1020/patches/linux/0003-powerpc-ptrace-Fix-out-of-bounds-array-access-warning.patch new file +52 -0
new file mode 100644
index 000000000..29d2b71fa
@@ -0,0 +1,52 @@
+From 35b7ce4f8f290794d3b89db7461e8c568b5defa1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Mon, 25 Apr 2016 09:19:17 -0700
+Subject: powerpc/ptrace: Fix out of bounds array access warning
+
+commit 1e407ee3b21f981140491d5b8a36422979ca246f upstream.
+
+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 <[email protected]>
+Cc: Kees Cook <[email protected]>
+Cc: Michael Ellerman <[email protected]>
+Cc: Segher Boessenkool <[email protected]>
+Tested-by: Aaro Koskinen <[email protected]>
+Acked-by: Olof Johansson <[email protected]>
+Cc: Arnd Bergmann <[email protected]>
+Signed-off-by: Michael Ellerman <[email protected]>
+Signed-off-by: Greg Kroah-Hartman <[email protected]>
+---
+ 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 f21897b..93f200f 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);
+-- 
+cgit v1.1
Signature · 1 line
2.11.0
#1 lore raw

PATCH 1/1 board/arcturus/ppc-ucp1020 new gcc-6.x Linux kernel build fix

Hello,

Quoted 11 lines · Oleksandr Zhadan

Add the Linux-3.18 patch "powerpc/ptrace: Fix out of bounds array access warning" to the board/arcturus/ppc-ucp1020 BSP

" 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"

Do you have a good reason to stick with the 4.1 Linux kernel in this defconfig, instead of upgrading to a newer kernel version that has commit 1e407ee3b21f981140491d5b8a36422979ca246f ? For example, using Linux 4.9 would solve this.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#2 lore raw

PATCH 1/1 board/arcturus/ppc-ucp1020 new gcc-6.x Linux kernel build fix

Hello,

Quoted 11 lines · Thomas Petazzoni

Hello,

Quoted 8 lines · Oleksandr Zhadan

Add the Linux-3.18 patch "powerpc/ptrace: Fix out of bounds array access warning" to the board/arcturus/ppc-ucp1020 BSP

" 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]));
                         ^
Quoted 7 lines
Quoted 3 lines

check the end of array instead of beginning of next element to fix this"

Do you have a good reason to stick with the 4.1 Linux kernel in this defconfig, instead of upgrading to a newer kernel version that has commit 1e407ee3b21f981140491d5b8a36422979ca246f ? For example, using Linux 4.9 would solve this.

Yes, uprating to newer kernel is on our list. And we know that it is a fix there.
But, It will take some time to re-test all ours and our existing customers apps. And as usually we do not have that time now ;-). For now we would like to fix uCP1020 buildroot build in any way: or by downgrading GCC or with that Linux-3.18 patch.
Please apply any of the patches and when we will be ready we will send another, new "kernel patch".

Thank you,

Oleks

Quoted 4 lines

Best regards,

Thomas

Signature · 5 lines
Oleksandr Zhadan
Sr. Software Engineer
Arcturus Networks
T 416 621-0125 x235
F 416 621-0190
#3 lore raw

PATCH 1/1 board/arcturus/ppc-ucp1020 new gcc-6.x Linux kernel build fix

Hello,

Quoted 8 lines · Oleksandr G Zhadan

Yes, uprating to newer kernel is on our list. And we know that it is a fix there.
But, It will take some time to re-test all ours and our existing customers apps. And as usually we do not have that time now ;-). For now we would like to fix uCP1020 buildroot build in any way: or by downgrading GCC or with that Linux-3.18 patch.
Please apply any of the patches and when we will be ready we will send another, new "kernel patch".

OK. As long as upgrading to a newer kernel is on your list, I'm fine with having this patch as a temporary solution.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#4 lore raw

PATCH 1/1 board/arcturus/ppc-ucp1020 new gcc-6.x Linux kernel build fix

Hello,

Thank you Thomas !
Now will wait for your decision on other path: [Buildroot][PATCH v4 1/1] configs/arcturus_ucls1012a: new defconfig

Kind Regards,

Oleks

Quoted 18 lines · Thomas Petazzoni

Hello,

Quoted 8 lines · Oleksandr G Zhadan

Yes, uprating to newer kernel is on our list. And we know that it is a fix there.
But, It will take some time to re-test all ours and our existing customers apps. And as usually we do not have that time now ;-). For now we would like to fix uCP1020 buildroot build in any way: or by downgrading GCC or with that Linux-3.18 patch.
Please apply any of the patches and when we will be ready we will send another, new "kernel patch".

OK. As long as upgrading to a newer kernel is on your list, I'm fine with having this patch as a temporary solution.

Thanks!

Thomas

Signature · 4 lines
Oleksandr Zhadan
Arcturus Networks
T 416 621-0125 x235
F 416 621-0190
#5 lore raw

PATCH 1/1 board/arcturus/ppc-ucp1020 new gcc-6.x Linux kernel build fix

In reply to Oleksandr Zhadan

Hello,

Quoted 8 lines · Oleksandr Zhadan

Add the Linux-3.18 patch "powerpc/ptrace: Fix out of bounds array access warning" to the board/arcturus/ppc-ucp1020 BSP

" 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]));
                        ^
Quoted 7 lines

check the end of array instead of beginning of next element to fix this"

---
 ...ce-Fix-out-of-bounds-array-access-warning.patch | 52 ++++++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 board/arcturus/ppc-ucp1020/patches/linux/0003-powerpc-ptrace-Fix-out-of-bounds-array-access-warning.patch

Applied to master, after tweaking the commit log. Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com