Re: [PATCH] cifs: fix a memleak in cifs_setattr_nounix()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue,  9 Nov 2010 12:27:41 +0530
Suresh Jayaraman <sjayaraman@xxxxxxx> wrote:

> 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 <andrew.hendry@xxxxxxxxx>
> Cc: Christoph Hellwig <hch@xxxxxx>
> Signed-off-by: Suresh Jayaraman <sjayaraman@xxxxxxx>
> ---
>  fs/cifs/inode.c |    1 -
>  1 files changed, 0 insertions(+), 1 deletions(-)
> 
> diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
> index 39869c3..ef3a55b 100644
> --- 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);
> --
> To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

That's almost certainly the bug.

Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux