Commit da7c622c authored by Bui Quang Minh's avatar Bui Quang Minh Committed by Alexander Gordeev

s390/cio: Ensure the copied buf is NUL terminated

Currently, we allocate a lbuf-sized kernel buffer and copy lbuf from
userspace to that buffer. Later, we use scanf on this buffer but we don't
ensure that the string is terminated inside the buffer, this can lead to
OOB read when using scanf. Fix this issue by using memdup_user_nul instead.

Fixes: a4f17cc7 ("s390/cio: add CRW inject functionality")
Signed-off-by: default avatarBui Quang Minh <minhquangbui99@gmail.com>
Reviewed-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Link: https://lore.kernel.org/r/20240424-fix-oob-read-v2-5-f1f1b53a10f4@gmail.comSigned-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
parent b961ec10
......@@ -95,7 +95,7 @@ static ssize_t crw_inject_write(struct file *file, const char __user *buf,
return -EINVAL;
}
buffer = vmemdup_user(buf, lbuf);
buffer = memdup_user_nul(buf, lbuf);
if (IS_ERR(buffer))
return -ENOMEM;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment