| From ba82989b5622038be28b772f877da31ad2fbd085 Mon Sep 17 00:00:00 2001 |
| From: Eric Richter <erichte@linux.vnet.ibm.com> |
| Date: Thu, 13 Oct 2016 17:47:36 -0500 |
| Subject: [PATCH] ima: fix memory leak in ima_release_policy |
| |
| 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@canonical.com> |
| Signed-off-by: Eric Richter <erichte@linux.vnet.ibm.com> |
| Tested-by: Colin Ian King <colin.king@canonical.com> |
| Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_fs.c |
| index c07a3844ea0a..3df46906492d 100644 |
| --- a/security/integrity/ima/ima_fs.c |
| +++ b/security/integrity/ima/ima_fs.c |
| @@ -401,7 +401,7 @@ static int ima_release_policy(struct inode *inode, struct file *file) |
| 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"; |
| -- |
| 2.10.1 |
| |