Blob Blame History Raw
From: David Rientjes <rientjes@google.com>
Date: Fri, 8 Sep 2017 16:13:29 -0700
Subject: [PATCH] mm/swapfile.c: fix swapon frontswap_map memory leak on error
References: bnc#1060662
Patch-mainline: v4.12.13
Git-commit: b6b1fd2a6bedd533aeed83924d7be0e944fded9f

commit b6b1fd2a6bedd533aeed83924d7be0e944fded9f upstream.

Free frontswap_map if an error is encountered before enable_swap_info().

Signed-off-by: David Rientjes <rientjes@google.com>
Reviewed-by: "Huang, Ying" <ying.huang@intel.com>
Cc: Darrick J. Wong <darrick.wong@oracle.com>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 mm/swapfile.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/mm/swapfile.c b/mm/swapfile.c
index 3a21b2b59546..2e09f67bc99b 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -2904,6 +2904,7 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
 	spin_unlock(&swap_lock);
 	vfree(swap_map);
 	kvfree(cluster_info);
+	kvfree(frontswap_map);
 	if (swap_file) {
 		if (inode && S_ISREG(inode->i_mode)) {
 			inode_unlock(inode);
-- 
2.14.2