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:
ed92d8c
)
nfs4: fix a typo of NFS_ATTR_FATTR_GROUP_NAME
author
Kinglong Mee
<kinglongmee@gmail.com>
Mon, 6 Mar 2017 09:49:42 +0000
(17:49 +0800)
committer
Anna Schumaker
<Anna.Schumaker@Netapp.com>
Mon, 13 Mar 2017 14:39:10 +0000
(10:39 -0400)
This typo cause a memory leak, and a bad client's group id.
unreferenced object 0xffff96d8073998d0 (size 8):
comm "kworker/0:3", pid 34224, jiffies
4295361338
(age 761.752s)
hex dump (first 8 bytes):
30 00 39 07 d8 96 ff ff 0.9.....
backtrace:
[<
ffffffffb883212a
>] kmemleak_alloc+0x4a/0xa0
[<
ffffffffb8237bc0
>] __kmalloc+0x140/0x220
[<
ffffffffc05c921c
>] xdr_stream_decode_string_dup+0x7c/0x110 [sunrpc]
[<
ffffffffc08edcf0
>] decode_getfattr_attrs+0x940/0x1630 [nfsv4]
[<
ffffffffc08eea7b
>] decode_getfattr_generic.constprop.108+0x9b/0x100 [nfsv4]
[<
ffffffffc08eebaf
>] nfs4_xdr_dec_open+0xcf/0x100 [nfsv4]
[<
ffffffffc05bf9c7
>] rpcauth_unwrap_resp+0xa7/0xe0 [sunrpc]
[<
ffffffffc05afc70
>] call_decode+0x1e0/0x810 [sunrpc]
[<
ffffffffc05bc64d
>] __rpc_execute+0x8d/0x420 [sunrpc]
[<
ffffffffc05bc9f2
>] rpc_async_schedule+0x12/0x20 [sunrpc]
[<
ffffffffb80bb077
>] process_one_work+0x197/0x430
[<
ffffffffb80bb35e
>] worker_thread+0x4e/0x4a0
[<
ffffffffb80c1d41
>] kthread+0x101/0x140
[<
ffffffffb8839a5c
>] ret_from_fork+0x2c/0x40
[<
ffffffffffffffff
>] 0xffffffffffffffff
Fixes: 686a816ab6 ("NFSv4: Clean up owner/group attribute decode")
Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
fs/nfs/nfs4xdr.c
patch
|
blob
|
history
diff --git
a/fs/nfs/nfs4xdr.c
b/fs/nfs/nfs4xdr.c
index f0369e36275341404db0684aebb4e9bdba273205..80ce289eea05326336a7edecbe8a132ee4900d23 100644
(file)
--- a/
fs/nfs/nfs4xdr.c
+++ b/
fs/nfs/nfs4xdr.c
@@
-3942,7
+3942,7
@@
static int decode_attr_group(struct xdr_stream *xdr, uint32_t *bitmap,
if (len <= 0)
goto out;
dprintk("%s: name=%s\n", __func__, group_name->data);
- return NFS_ATTR_FATTR_
OWNER
_NAME;
+ return NFS_ATTR_FATTR_
GROUP
_NAME;
} else {
len = xdr_stream_decode_opaque_inline(xdr, (void **)&p,
XDR_MAX_NETOBJ);