Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

randstruct: Whitelist struct security_hook_heads cast

The LSM initialization routines walk security_hook_heads as an array
of struct list_head instead of via names to avoid a ton of needless
source. Whitelist this to avoid the false positive warning from the
plugin:

security/security.c: In function ‘security_init’:
security/security.c:59:20: note: found mismatched op0 struct pointer types: ‘struct list_head’ and ‘struct security_hook_heads’

struct list_head *list = (struct list_head *) &security_hook_heads;
^

Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: James Morris <james.l.morris@oracle.com>
Signed-off-by: Kees Cook <keescook@chromium.org>

+2
+2
scripts/gcc-plugins/randomize_layout_plugin.c
··· 46 46 }; 47 47 48 48 static const struct whitelist_entry whitelist[] = { 49 + /* walk struct security_hook_heads as an array of struct list_head */ 50 + { "security/security.c", "list_head", "security_hook_heads" }, 49 51 { } 50 52 }; 51 53