Re: [PATCH v8 07/19] ima: Move dentry into ima_namespace and others onto stack

From: Stefan Berger
Date: Tue Jan 18 2022 - 15:13:29 EST



On 1/13/22 15:28, Mimi Zohar wrote:
Hi Stefan,

Nobody refers to the IMA securityfs files as dentries. The Subject
line is suppose to provide a hint about the patch. How about changing
the "Subject" line to "ima: Move IMA securityfs files into
ima_namespaces or onto stack".

On Tue, 2022-01-04 at 12:04 -0500, Stefan Berger wrote:
From: Stefan Berger <stefanb@xxxxxxxxxxxxx>

Move the policy file dentry into the ima_namespace for reuse by
virtualized SecurityFS and for being able to remove it from
the filesystem. Move the other dentries onto the stack.
Missing is an explanation why the other IMA securityfs files can be on
the stack. Maybe start out by saying that the ns_ima_init securityfs
files are never deleted. Then transition into the IMA namespaced
securityfs files and how they will be deleted.

How about this:

ima: Move IMA securityfs files into ima_namespace or onto stack

Move the IMA policy file's dentry into the ima_namespace for reuse by
virtualized securityfs and for being able to remove the file from the
filesystem using securityfs_remove().

Move the other files' dentries onto the stack since they are not needed
outside the function where they are created in. Also, their cleanup is
automatically handled by the filesystem upon umount of a virtualized
secruityfs instance, so they don't need to be explicitly freed anymore.

When moving the dentry 'ima_policy' into ima_namespace rename it to
'policy_dentry' to clarify its datatype and avoid a name clash with
'int ima_policy' from ima_policy.c.

   Stefan



Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxxxxx>
---
security/integrity/ima/ima.h | 2 ++
security/integrity/ima/ima_fs.c | 32 ++++++++++++++++++--------------
2 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/security/integrity/ima/ima.h b/security/integrity/ima/ima.h
index 82b3f6a98320..224b09617c52 100644
--- a/security/integrity/ima/ima.h
+++ b/security/integrity/ima/ima.h
@@ -140,6 +140,8 @@ struct ima_namespace {
struct mutex ima_write_mutex;
unsigned long ima_fs_flags;
int valid_policy;
+
+ struct dentry *policy_dentry;
None of the other securityfs files are renamed. Why is "ima_policy"
being renamed to "policy_dentry"? If there is a need, it should be
documented in the patch description.

thanks,

Mimi

} __randomize_layout;
extern struct ima_namespace init_ima_ns;