lkml.org 
[lkml]   [2024]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: __randomize_layout;


On March 27, 2024 9:21:59 AM MDT, "Luck, Tony" <tony.luck@intel.com> wrote:
>This e-mail is to check you on whether that __randomize_layout can shuffle the
>fields inside that nested union/structure. I tried some experiments, and in a
>few kernel builds I saw the whole block move to different offsets, but the order
>of x86_vendor, x86, x86_model, and x86_reserved was preserved.

Yes, this is an intentional behavior: __randomize_layout will only apply to the struct it is attached to, and is not enabled for any substructs (anonymous or otherwise).

>But experiments aren't proof. Nor defense against future versions of
>scripts/gcc-plugins/randomize_layout_plugin.c becoming smarter or
>more aggressive about changing layout.

The behavior is also supported natively by Clang -- neither implementation is likely to ever change its treatment of substructs as it would kind of cause chaos.

So you're all good! :)

--
Kees Cook

\
 
 \ /
  Last update: 2024-05-27 16:13    [W:0.805 / U:1.008 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site