Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 22 Feb 2016 12:46:28 -0800
From: Kees Cook <>
To: PaX Team <>
Cc: Ard Biesheuvel <>, Laura Abbott <>, 
	Greg Kroah-Hartman <>, Mark Rutland <>, 
	Jeremy Linton <>, Arnd Bergmann <>, 
	"" <>, LKML <>
Subject: Re: [PATCH] lkdtm: add test for executing .rodata

On Thu, Feb 18, 2016 at 1:27 PM, PaX Team <> 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)

With -fno-toplevel-reorder, this produces:

        .pushsection .rodata
        .section        .text.unlikely
        .p2align 4,,15
        .type   do_nothing_rodata, @function
        .loc 1 323 0
        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 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.