mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-29 23:53:32 +00:00
nfsd: properly handle embedded newlines in fault_injection input
Currently rpc_pton() fails to handle the case where you echo an address into the file, as it barfs on the newline. Ensure that we NULL out the first occurrence of any newline. Signed-off-by: Jeff Layton <jlayton@primarydata.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
f7ce5d2842
commit
d4c8e34fe8
1 changed files with 8 additions and 0 deletions
|
@ -115,11 +115,19 @@ static ssize_t fault_inject_write(struct file *file, const char __user *buf,
|
|||
struct net *net = current->nsproxy->net_ns;
|
||||
struct sockaddr_storage sa;
|
||||
u64 val;
|
||||
char *nl;
|
||||
|
||||
if (copy_from_user(write_buf, buf, size))
|
||||
return -EFAULT;
|
||||
write_buf[size] = '\0';
|
||||
|
||||
/* Deal with any embedded newlines in the string */
|
||||
nl = strchr(write_buf, '\n');
|
||||
if (nl) {
|
||||
size = nl - write_buf;
|
||||
*nl = '\0';
|
||||
}
|
||||
|
||||
size = rpc_pton(net, write_buf, size, (struct sockaddr *)&sa, sizeof(sa));
|
||||
if (size > 0)
|
||||
nfsd_inject_set_client(file_inode(file)->i_private, &sa, size);
|
||||
|
|
Loading…
Reference in a new issue