landlock: Use f_cred in security_file_open() hook
authorMickaël Salaün <mic@digikod.net>
Thu, 7 Mar 2024 09:52:03 +0000 (10:52 +0100)
committerMickaël Salaün <mic@digikod.net>
Fri, 8 Mar 2024 17:22:16 +0000 (18:22 +0100)
commit63817febd1f3c27f633b2bce0d6db328e59fd019
tree05816bfa23a1d370fbaf2b72951cf0a50d36fbbc
parente3e37fe022a486d83c71eacb59fb5b6b0ebdbf78
landlock: Use f_cred in security_file_open() hook

Use landlock_cred(file->f_cred)->domain instead of
landlock_get_current_domain() in security_file_open() hook
implementation.

This should not change the current behavior but could avoid potential
race conditions in case of current task's credentials change.

This will also ensure consistency with upcoming audit support relying on
file->f_cred.

Add and use a new get_fs_domain() helper to mask non-filesystem domains.

file->f_cred is set by path_openat()/alloc_empty_file()/init_file() just
before calling security_file_alloc().

Cc: Christian Brauner <brauner@kernel.org>
Cc: Günther Noack <gnoack@google.com>
Cc: Jann Horn <jannh@google.com>
Cc: Paul Moore <paul@paul-moore.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20240307095203.1467189-1-mic@digikod.net
Signed-off-by: Mickaël Salaün <mic@digikod.net>
security/landlock/fs.c