Re: Linker segfault on powerpc when CONFIG_LKDTM=y (was Re: [kernel-hardening] [PATCH 3/5] lkdtm: add function for testing .rodata section)

From: Kees Cook
Date: Mon Aug 01 2016 - 15:52:46 EST


On Mon, Aug 1, 2016 at 5:37 AM, Michael Ellerman <mpe@xxxxxxxxxxxxxx> wrote:
> Kees Cook <keescook@xxxxxxxxxxxx> writes:
>
>> This adds a function that lives in the .rodata section. The section
>> flags are corrected using objcopy since there is no way with gcc to
>> declare section flags in an architecture-agnostic way.
>>
>> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
>> ---
>> drivers/misc/Makefile | 7 +++++++
>> drivers/misc/lkdtm.h | 6 ++++++
>> drivers/misc/lkdtm_core.c | 24 +++++++++++++++++-------
>> drivers/misc/lkdtm_rodata.c | 10 ++++++++++
>> 4 files changed, 40 insertions(+), 7 deletions(-)
>> create mode 100644 drivers/misc/lkdtm.h
>> create mode 100644 drivers/misc/lkdtm_rodata.c
>
> This is blowing up my linker :(
>
> scripts/link-vmlinux.sh: line 52: 36260 Segmentation fault (core dumped) ${LD} ${LDFLAGS} ${LDFLAGS_vmlinux} -o ${2} -T ${lds} ${KBUILD_VMLINUX_INIT} --start-group ${KBUILD_VMLINUX_MAIN} --end-group ${1}
>
> Haven't had a chance to debug it further.

Argh. Do you want a quick fix for this now? I can add a PPC CONFIG
blacklist for the rodata check, maybe?

Also, what version of gcc? I'll see if I can reproduce this with a
cross compiler...

-Kees

--
Kees Cook
Chrome OS & Brillo Security