projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
6187639
)
cifs: fix a memleak in cifs_setattr_nounix()
author
Suresh Jayaraman
<
[email protected]
>
Tue, 9 Nov 2010 06:57:41 +0000
(12:27 +0530)
committer
Steve French
<
[email protected]
>
Tue, 9 Nov 2010 15:17:53 +0000
(15:17 +0000)
Andrew Hendry reported a kmemleak warning in 2.6.37-rc1 while editing a
text file with gedit over cifs.
unreferenced object 0xffff88022ee08b40 (size 32):
comm "gedit", pid 2524, jiffies
4300160388
(age 2633.655s)
hex dump (first 32 bytes):
5c 2e 67 6f 75 74 70 75 74 73 74 72 65 61 6d 2d \.goutputstream-
35 42 41 53 4c 56 00 de 09 00 00 00 2c 26 78 ee 5BASLV......,&x.
backtrace:
[<
ffffffff81504a4d
>] kmemleak_alloc+0x2d/0x60
[<
ffffffff81136e13
>] __kmalloc+0xe3/0x1d0
[<
ffffffffa0313db0
>] build_path_from_dentry+0xf0/0x230 [cifs]
[<
ffffffffa031ae1e
>] cifs_setattr+0x9e/0x770 [cifs]
[<
ffffffff8115fe90
>] notify_change+0x170/0x2e0
[<
ffffffff81145ceb
>] sys_fchmod+0x10b/0x140
[<
ffffffff8100c172
>] system_call_fastpath+0x16/0x1b
[<
ffffffffffffffff
>] 0xffffffffffffffff
The commit
1025774c
that removed inode_setattr() seems to have introduced this
memleak by returning early without freeing 'full_path'.
Reported-by: Andrew Hendry <
[email protected]
>
Cc: Christoph Hellwig <
[email protected]
>
Reviewed-by: Jeff Layton <
[email protected]
>
Signed-off-by: Suresh Jayaraman <
[email protected]
>
Signed-off-by: Steve French <
[email protected]
>
fs/cifs/inode.c
patch
|
blob
|
history
diff --git
a/fs/cifs/inode.c
b/fs/cifs/inode.c
index 39869c3c3efbc2a08b87ba6661e48ace7e9789eb..ef3a55bf86b6d3700c521e074954548c6f53223f 100644
(file)
--- a/
fs/cifs/inode.c
+++ b/
fs/cifs/inode.c
@@
-2177,7
+2177,6
@@
cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs)
setattr_copy(inode, attrs);
mark_inode_dirty(inode);
- return 0;
cifs_setattr_exit:
kfree(full_path);