On 5/23/25 17:57, Mickaël Salaün wrote:
To be able to have useful traces, let's consolidate rule finding into
unmask checking.  landlock_unmask_layers() now gets a landlock_rule_ref
instead of a rule pointer.

This enables us to not deal with Landlock rule pointers outside of
ruleset.c, to avoid two calls, and to get all required information
available to landlock_unmask_layers().

We could make struct landlock_rule private because it is now only used
in the ruleset.c file.

Cc: Günther Noack <gno...@google.com>
Signed-off-by: Mickaël Salaün <m...@digikod.net>
---
  security/landlock/fs.c      | 144 ++++++++++++++++++++++--------------
  security/landlock/net.c     |   6 +-
  security/landlock/ruleset.c |  12 ++-
  security/landlock/ruleset.h |   9 +--
  4 files changed, 100 insertions(+), 71 deletions(-)

diff --git a/security/landlock/fs.c b/security/landlock/fs.c
index f5087688190a..73a20a501c3c 100644
--- a/security/landlock/fs.c
+++ b/security/landlock/fs.c
@@ -356,30 +356,27 @@ int landlock_append_fs_rule(struct landlock_ruleset 
*const ruleset,
  /* Access-control management */
/*
- * The lifetime of the returned rule is tied to @domain.
- *
- * Returns NULL if no rule is found or if @dentry is negative.
+ * Returns true if an object is tied to @dentry, and updates @ref accordingly.
   */
-static const struct landlock_rule *
-find_rule(const struct landlock_ruleset *const domain,
-         const struct dentry *const dentry)
+static bool find_rule_ref(const struct dentry *const dentry,
+                         struct landlock_rule_ref *ref)

I think a better name would be something like "get_rule_ref"? Since it's not really _finding_ anything (like doing a search in a rbtree).

(If you take the rename suggestion, then it would be "get_rule_target")

[...]

Reply via email to