Thread (3 messages) flat view 3 messages, 3 authors, 2011-08-18

build failure with gcc 4.6.0 "array subscript is above array bounds"

From: Ian Campbell <hidden>
Date: 2011-08-18 08:38:43

I noticed this with a defconfig build:
      CC      arch/powerpc/kernel/ptrace.o
    arch/powerpc/kernel/ptrace.c: In function 'arch_ptrace':
    arch/powerpc/kernel/ptrace.c:1502:5: error: array subscript is above array bounds [-Werror=array-bounds]
    arch/powerpc/kernel/ptrace.c:1530:5: error: array subscript is above array bounds [-Werror=array-bounds]

That corresponds to:
	tmp = ((unsigned long *)child->thread.fpr)
		[TS_FPRWIDTH * (index - PT_FPR0)];

child->thread.fpr is "double fpr[32][TS_FPRWIDTH]".

index has already been bounds checked so we know it is <= PT_FPSCR.

I tried to fix but I don't really know enough about PPC to figure out
the correct fix is. PT_FPSCR is "PT_FPR0 + 32" on ppc64, which seems
consistent with the fpr definition.

On ppc32 PT_FPSCR is "PT_FPR0 + 2*32 + 1", I tried replacing the 32 with
"PT_FPSCR - PT_FPR0" (+ 1) but that got me into the BUILD_BUG_ONs at
line 346 and 374. At this point I'm afraid gave up trying to fix things,
I hope the report is useful anyway...

Ian.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help