Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 09cb22d2 authored by Andreas Gruenbacher's avatar Andreas Gruenbacher Committed by Dave Chinner
Browse files

xfs: Plug memory leak in xfs_attrmulti_attr_set



When setting attributes via XFS_IOC_ATTRMULTI_BY_HANDLE, the user-space
buffer is copied into a new kernel-space buffer via memdup_user; that
buffer then isn't freed.

Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
parent 86a21c79
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -482,6 +482,7 @@ xfs_attrmulti_attr_set(
	__uint32_t		flags)
	__uint32_t		flags)
{
{
	unsigned char		*kbuf;
	unsigned char		*kbuf;
	int			error;


	if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
	if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
		return -EPERM;
		return -EPERM;
@@ -492,7 +493,9 @@ xfs_attrmulti_attr_set(
	if (IS_ERR(kbuf))
	if (IS_ERR(kbuf))
		return PTR_ERR(kbuf);
		return PTR_ERR(kbuf);


	return xfs_attr_set(XFS_I(inode), name, kbuf, len, flags);
	error = xfs_attr_set(XFS_I(inode), name, kbuf, len, flags);
	kfree(kbuf);
	return error;
}
}


int
int