xattr: fix uninitialized out-param

`removed_sized` isn't correctly initialized (as the doc comment
suggests) on memory allocation failures. Fix by moving initialization up
a bit.

Fixes: 0c47383ba3 ("kernfs: Add option to enable user xattrs")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
Daniel Xu 2020-04-08 23:27:29 -07:00 committed by Tejun Heo
parent d8ef4b38cb
commit 772b314066

View File

@ -876,6 +876,9 @@ int simple_xattr_set(struct simple_xattrs *xattrs, const char *name,
struct simple_xattr *new_xattr = NULL; struct simple_xattr *new_xattr = NULL;
int err = 0; int err = 0;
if (removed_size)
*removed_size = -1;
/* value == NULL means remove */ /* value == NULL means remove */
if (value) { if (value) {
new_xattr = simple_xattr_alloc(value, size); new_xattr = simple_xattr_alloc(value, size);
@ -914,9 +917,6 @@ int simple_xattr_set(struct simple_xattrs *xattrs, const char *name,
list_add(&new_xattr->list, &xattrs->head); list_add(&new_xattr->list, &xattrs->head);
xattr = NULL; xattr = NULL;
} }
if (removed_size)
*removed_size = -1;
out: out:
spin_unlock(&xattrs->lock); spin_unlock(&xattrs->lock);
if (xattr) { if (xattr) {