|
Message-ID: <CAGXu5jKM5RZeTgTonscuLRg-+62S8UWcPbJABWqT4=7HOwb2bA@mail.gmail.com> Date: Mon, 22 Feb 2016 12:46:28 -0800 From: Kees Cook <keescook@...omium.org> To: PaX Team <pageexec@...email.hu> Cc: Ard Biesheuvel <ard.biesheuvel@...aro.org>, Laura Abbott <labbott@...hat.com>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Mark Rutland <mark.rutland@....com>, Jeremy Linton <jeremy.linton@....com>, Arnd Bergmann <arnd@...db.de>, "kernel-hardening@...ts.openwall.com" <kernel-hardening@...ts.openwall.com>, LKML <linux-kernel@...r.kernel.org> Subject: Re: [PATCH] lkdtm: add test for executing .rodata On Thu, Feb 18, 2016 at 1:27 PM, PaX Team <pageexec@...email.hu> wrote: > On 18 Feb 2016 at 12:34, Ard Biesheuvel wrote: > >> However, that does not fix the issue Kees is trying to solve, where a >> .rodata section is emitted with the "x" bit set, which causes the >> linker to complain: >> >> /tmp/cc50ffWw.s: Assembler messages: >> /tmp/cc50ffWw.s:2: Warning: setting incorrect section attributes for >> .rodata.text > > in that case why not use a top-level asm statement to set the section > and its attributes (and compile the file with fno-toplevel-reorder)? GCC really wants to declare the section. :( asm(".pushsection .rodata"); static void do_nothing_rodata(void) { return; } asm(".popsection"); With -fno-toplevel-reorder, this produces: #APP .pushsection .rodata #NO_APP .section .text.unlikely .LCOLDB42: .text .LHOTB42: .p2align 4,,15 .type do_nothing_rodata, @function do_nothing_rodata: .LFB2756: .loc 1 323 0 .cfi_startproc pushq %rbp ... So I either need to define "ret" for every architecture, define the linker comment character for every architecture, or do some generated file. I'll try the latter next... -Kees -- Kees Cook Chrome OS & Brillo Security
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.