[PATCH v4 20/19] LSM: Correct file blob free empty blob check

From: Casey Schaufler
Date: Wed Sep 26 2018 - 17:57:11 EST


Instead of checking if the kmem_cache for file blobs
has been initialized check if the blob is NULL. This
allows non-blob using modules to do other kinds of
clean up in the security_file_free hooks.

Signed-off-by: Casey Schaufler <casey@xxxxxxxxxxxxxxxx>
---
security/security.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/security/security.c b/security/security.c
index e7c8506041f1..76f7dc49b63c 100644
--- a/security/security.c
+++ b/security/security.c
@@ -1202,14 +1202,13 @@ void security_file_free(struct file *file)
{
void *blob;

- if (!lsm_file_cache)
- return;
-
call_void_hook(file_free_security, file);

blob = file->f_security;
- file->f_security = NULL;
- kmem_cache_free(lsm_file_cache, blob);
+ if (blob) {
+ file->f_security = NULL;
+ kmem_cache_free(lsm_file_cache, blob);
+ }
}

int security_file_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
--
2.17.1