diff options
author | Davi Arnaut <davi.arnaut@gmail.com> | 2005-11-07 03:59:37 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-07 10:53:39 -0500 |
commit | 53b27584db0446e356c86b3aa43f5107b0170704 (patch) | |
tree | 82b67a2ac88716cca4eb638f5475e875d6feb1ec | |
parent | ce44eeb6906cf2b093b76ea69b952621712a4a3c (diff) |
[PATCH] smbfs: 'names_cache' memory leak
Data allocated with "__getname()" should always be free'd with "__putname()"
because of the AUDITSYSCALL code.
Signed-off-by: Davi Arnaut <davi.arnaut@gmail.com>
Cc: Urban Widmark <urban@teststation.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | fs/smbfs/symlink.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/smbfs/symlink.c b/fs/smbfs/symlink.c index 0c64bc3a0127..cdc53c4fb381 100644 --- a/fs/smbfs/symlink.c +++ b/fs/smbfs/symlink.c | |||
@@ -45,7 +45,7 @@ static void *smb_follow_link(struct dentry *dentry, struct nameidata *nd) | |||
45 | int len = smb_proc_read_link(server_from_dentry(dentry), | 45 | int len = smb_proc_read_link(server_from_dentry(dentry), |
46 | dentry, link, PATH_MAX - 1); | 46 | dentry, link, PATH_MAX - 1); |
47 | if (len < 0) { | 47 | if (len < 0) { |
48 | putname(link); | 48 | __putname(link); |
49 | link = ERR_PTR(len); | 49 | link = ERR_PTR(len); |
50 | } else { | 50 | } else { |
51 | link[len] = 0; | 51 | link[len] = 0; |
@@ -59,7 +59,7 @@ static void smb_put_link(struct dentry *dentry, struct nameidata *nd, void *p) | |||
59 | { | 59 | { |
60 | char *s = nd_get_link(nd); | 60 | char *s = nd_get_link(nd); |
61 | if (!IS_ERR(s)) | 61 | if (!IS_ERR(s)) |
62 | putname(s); | 62 | __putname(s); |
63 | } | 63 | } |
64 | 64 | ||
65 | struct inode_operations smb_link_inode_operations = | 65 | struct inode_operations smb_link_inode_operations = |