Commit 3413bc0c authored by Tao Chen's avatar Tao Chen Committed by Alexei Starovoitov
Browse files

bpf: Clean code with bpf_copy_to_user()



No logic change, use bpf_copy_to_user() to clean code.

Signed-off-by: default avatarTao Chen <chen.dylane@linux.dev>
Acked-by: default avatarYonghong Song <yonghong.song@linux.dev>
Link: https://lore.kernel.org/r/20250703163700.677628-1-chen.dylane@linux.dev


Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 192e3aa1
Loading
Loading
Loading
Loading
+3 −14
Original line number Diff line number Diff line
@@ -5344,21 +5344,10 @@ static int bpf_task_fd_query_copy(const union bpf_attr *attr,

			if (put_user(zero, ubuf))
				return -EFAULT;
		} else if (input_len >= len + 1) {
			/* ubuf can hold the string with NULL terminator */
			if (copy_to_user(ubuf, buf, len + 1))
				return -EFAULT;
		} else {
			/* ubuf cannot hold the string with NULL terminator,
			 * do a partial copy with NULL terminator.
			 */
			char zero = '\0';

			err = -ENOSPC;
			if (copy_to_user(ubuf, buf, input_len - 1))
				return -EFAULT;
			if (put_user(zero, ubuf + input_len - 1))
				return -EFAULT;
			err = bpf_copy_to_user(ubuf, buf, input_len, len);
			if (err == -EFAULT)
				return err;
		}
	}