]> git.baikalelectronics.ru Git - kernel.git/commit
fix memory leak in CIFSFindNext
authorJeff Layton <jlayton@redhat.com>
Tue, 13 May 2008 02:56:05 +0000 (19:56 -0700)
committerSteve French <sfrench@us.ibm.com>
Tue, 13 May 2008 03:06:13 +0000 (03:06 +0000)
commit298db556d9945619cd6d6f28b49363198fccbe9f
tree8a09c4b38d90c26ec431cb9e3691a73ca0da2031
parentce3a0e638e8eae00dbb4129886b625957167b05d
fix memory leak in CIFSFindNext

When CIFSFindNext gets back an -EBADF from a call, it sets the return
code of the function to 0 and eventually exits. Doing this makes the
cleanup at the end of the function skip freeing the SMB buffer, so
we need to make sure we free the buffer explicitly when doing this.

If we don't you end up with errors like this when unplugging the cifs
kernel module:

slab error in kmem_cache_destroy(): cache `cifs_request': Can't free all objects
 [<c046bdbf>] kmem_cache_destroy+0x61/0xf3
 [<e0f03045>] cifs_destroy_request_bufs+0x14/0x28 [cifs]
 [<e0f2016e>] exit_cifs+0x1e/0x80 [cifs]
 [<c043aeae>] sys_delete_module+0x192/0x1b8
 [<c04451fd>] audit_syscall_entry+0x14b/0x17d
 [<c0405413>] syscall_call+0x7/0xb
 =======================

Signed-off-by: Jeff Layton <jlayton@redhat.com>
fs/cifs/CHANGES
fs/cifs/cifssmb.c