Commit 11f6bce7 authored by Thorsten Blum's avatar Thorsten Blum Committed by Mike Marshall
Browse files

fs/orangefs: Replace kzalloc + copy_from_user with memdup_user_nul



Replace kzalloc() followed by copy_from_user() with memdup_user_nul() to
simplify and improve orangefs_debug_write(). Allocate only 'count' bytes
instead of the maximum size ORANGEFS_MAX_DEBUG_STRING_LEN, and set 'buf'
to NULL to ensure kfree(buf) still works.

No functional changes intended.

Signed-off-by: default avatarThorsten Blum <thorsten.blum@linux.dev>
Signed-off-by: default avatarMike Marshall <hubcap@omnibond.com>
parent 025e8807
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -440,14 +440,13 @@ static ssize_t orangefs_debug_write(struct file *file,
		count = ORANGEFS_MAX_DEBUG_STRING_LEN;
	}

	buf = kzalloc(ORANGEFS_MAX_DEBUG_STRING_LEN, GFP_KERNEL);
	if (!buf)
		goto out;

	if (copy_from_user(buf, ubuf, count - 1)) {
	buf = memdup_user_nul(ubuf, count - 1);
	if (IS_ERR(buf)) {
		gossip_debug(GOSSIP_DEBUGFS_DEBUG,
			     "%s: copy_from_user failed!\n",
			     "%s: memdup_user_nul failed!\n",
			     __func__);
		rc = PTR_ERR(buf);
		buf = NULL;
		goto out;
	}