summaryrefslogtreecommitdiff
path: root/mm
diff options
context:
space:
mode:
authorXiaotian Feng <xtfeng@gmail.com>2012-11-17 02:14:55 +0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-11-17 02:33:04 +0400
commitf58b59c1df3cb990d644018e1461cd4acd3c1700 (patch)
tree7681f5438bac5081ff9b84b3923c610873914972 /mm
parentbea8c150a7efbc0f204e709b7274fe273f55e0d3 (diff)
downloadlinux-f58b59c1df3cb990d644018e1461cd4acd3c1700.tar.xz
swapfile: fix name leak in swapoff
There's a name leak introduced by commit 91a27b2a7567 ("vfs: define struct filename and have getname() return it"). Add the missing putname. [akpm@linux-foundation.org: cleanup] Signed-off-by: Xiaotian Feng <dannyfeng@tencent.com> Reviewed-by: Jeff Layton <jlayton@redhat.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/swapfile.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/mm/swapfile.c b/mm/swapfile.c
index 71cd288b2001..f91a25547ffe 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -1494,9 +1494,8 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
BUG_ON(!current->mm);
pathname = getname(specialfile);
- err = PTR_ERR(pathname);
if (IS_ERR(pathname))
- goto out;
+ return PTR_ERR(pathname);
victim = file_open_name(pathname, O_RDWR|O_LARGEFILE, 0);
err = PTR_ERR(victim);
@@ -1608,6 +1607,7 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
out_dput:
filp_close(victim, NULL);
out:
+ putname(pathname);
return err;
}