landlock: Use bit-fields for storing handled layer access masks
authorGünther Noack <gnoack@google.com>
Mon, 10 Jun 2024 08:21:15 +0000 (08:21 +0000)
committerMickaël Salaün <mic@digikod.net>
Mon, 8 Jul 2024 08:51:10 +0000 (10:51 +0200)
commit395a02d04ed4d9b9ae2d7cadfd9b14a64fe240b5
tree07a1c96944c5518f2e901435cebe62afa9f15c56
parent256abd8e550ce977b728be79a74e1729438b4948
landlock: Use bit-fields for storing handled layer access masks

When defined using bit-fields, the compiler takes care of packing the
bits in a memory-efficient way and frees us from defining
LANDLOCK_SHIFT_ACCESS_* by hand.  The exact memory layout does not
matter in our use case.

The manual definition of LANDLOCK_SHIFT_ACCESS_* has resulted in bugs in
at least two recent patch sets [1] [2] where new kinds of handled access
rights were introduced.

Cc: Mikhail Ivanov <ivanov.mikhail1@huawei-partners.com>
Cc: Tahera Fahimi <fahimitahera@gmail.com>
Link: https://lore.kernel.org/r/ebd680cc-25d6-ee14-4856-310f5e5e28e4@huawei-partners.com
Link: https://lore.kernel.org/r/ZmLEoBfHyUR3nKAV@google.com
Signed-off-by: Günther Noack <gnoack@google.com>
Link: https://lore.kernel.org/r/20240610082115.1693267-1-gnoack@google.com
Signed-off-by: Mickaël Salaün <mic@digikod.net>
security/landlock/limits.h
security/landlock/ruleset.c
security/landlock/ruleset.h