Message ID | 1495829844-69341-12-git-send-email-keescook@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, May 26, 2017 at 01:17:15PM -0700, Kees Cook wrote: > Since the ACPICA source is maintained externally to the kernel, we can > neither switch it to designated initializers nor mark it > __no_randomize_layout. Until ACPICA-upstream changes[1] land to handle the > designated initialization, explicitly skip it in the plugin. > > [1] https://github.com/acpica/acpica/pull/248 I'd just overried the ACPIA bullshit process and just include these changes, as they are a major improvement independent of any reandomization.
On Sat, May 27, 2017 at 1:42 AM, Christoph Hellwig <hch@infradead.org> wrote: > On Fri, May 26, 2017 at 01:17:15PM -0700, Kees Cook wrote: >> Since the ACPICA source is maintained externally to the kernel, we can >> neither switch it to designated initializers nor mark it >> __no_randomize_layout. Until ACPICA-upstream changes[1] land to handle the >> designated initialization, explicitly skip it in the plugin. >> >> [1] https://github.com/acpica/acpica/pull/248 > > I'd just overried the ACPIA bullshit process and just include these > changes, as they are a major improvement independent of any > reandomization. Well... I'd rather not. It's been explicitly NAKed by them already, which is why I sent the upstream solution (though it's being ignored currently). I don't want this to block randstruct any longer, so that's why I took a whitelisting approach here. -Kees
On Sat, May 27, 2017 at 01:03:23PM -0700, Kees Cook wrote: > On Sat, May 27, 2017 at 1:42 AM, Christoph Hellwig <hch@infradead.org> wrote: > > On Fri, May 26, 2017 at 01:17:15PM -0700, Kees Cook wrote: > >> Since the ACPICA source is maintained externally to the kernel, we can > >> neither switch it to designated initializers nor mark it > >> __no_randomize_layout. Until ACPICA-upstream changes[1] land to handle the > >> designated initialization, explicitly skip it in the plugin. > >> > >> [1] https://github.com/acpica/acpica/pull/248 > > > > I'd just overried the ACPIA bullshit process and just include these > > changes, as they are a major improvement independent of any > > reandomization. > > Well... I'd rather not. It's been explicitly NAKed by them already, > which is why I sent the upstream solution (though it's being ignored > currently). Send it to linux-keernel again and we'll override their bulllshit. We can make exceptions from our coding style and preference just because they are idiots. And the whole ACPI mess needs urgent de-obsfucation anyway.
diff --git a/scripts/gcc-plugins/randomize_layout_plugin.c b/scripts/gcc-plugins/randomize_layout_plugin.c index f777ead58ba8..e6e02a40d522 100644 --- a/scripts/gcc-plugins/randomize_layout_plugin.c +++ b/scripts/gcc-plugins/randomize_layout_plugin.c @@ -346,6 +346,10 @@ static int relayout_struct(tree type) !strcmp((const char *)ORIG_TYPE_NAME(type), "RAWPCIFACTORY")) return 0; + /* Skip ACPICA structs until refreshed with designated_init. */ + if (!strcmp((const char *)ORIG_TYPE_NAME(type), "acpi_sleep_functions")) + return 0; + /* throw out any structs in uapi */ xloc = expand_location(DECL_SOURCE_LOCATION(TYPE_FIELDS(type)));
Since the ACPICA source is maintained externally to the kernel, we can neither switch it to designated initializers nor mark it __no_randomize_layout. Until ACPICA-upstream changes[1] land to handle the designated initialization, explicitly skip it in the plugin. [1] https://github.com/acpica/acpica/pull/248 Signed-off-by: Kees Cook <keescook@chromium.org> --- scripts/gcc-plugins/randomize_layout_plugin.c | 4 ++++ 1 file changed, 4 insertions(+)