[PATCH 4.9 132/206] ima: fix memory leak in ima_release_policy

From: Greg Kroah-Hartman
Date: Tue Jan 10 2017 - 08:49:43 EST


4.9-stable review patch. If anyone has any objections, please let me know.

------------------

From: Eric Richter <erichte@xxxxxxxxxxxxxxxxxx>

commit 9a11a18902bc3b904353063763d06480620245a6 upstream.

When the "policy" securityfs file is opened for read, it is opened as a
sequential file. However, when it is eventually released, there is no
cleanup for the sequential file, therefore some memory is leaked.

This patch adds a call to seq_release() in ima_release_policy() to clean up
the memory when the file is opened for read.

Fixes: 80eae209d63a IMA: allow reading back the current policy
Reported-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
Signed-off-by: Eric Richter <erichte@xxxxxxxxxxxxxxxxxx>
Tested-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
Signed-off-by: Mimi Zohar <zohar@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
security/integrity/ima/ima_fs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/security/integrity/ima/ima_fs.c
+++ b/security/integrity/ima/ima_fs.c
@@ -401,7 +401,7 @@ static int ima_release_policy(struct ino
const char *cause = valid_policy ? "completed" : "failed";

if ((file->f_flags & O_ACCMODE) == O_RDONLY)
- return 0;
+ return seq_release(inode, file);

if (valid_policy && ima_check_policy() < 0) {
cause = "failed";