9p: fix put_data error handling
Abhishek Kulkarni pointed out an inconsistency in the way errors are returned from p9_put_data. On deeper exploration it seems the error handling for this path was completely wrong. This patch adds checks for allocation problems and propagates errors correctly. Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
This commit is contained in:
parent
62aa528e02
commit
16ec470012
1 changed files with 5 additions and 1 deletions
|
@ -451,8 +451,10 @@ p9_put_data(struct cbuf *bufp, const char *data, int count,
|
|||
unsigned char **pdata)
|
||||
{
|
||||
*pdata = buf_alloc(bufp, count);
|
||||
if (*pdata == NULL)
|
||||
return -ENOMEM;
|
||||
memmove(*pdata, data, count);
|
||||
return count;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -460,6 +462,8 @@ p9_put_user_data(struct cbuf *bufp, const char __user *data, int count,
|
|||
unsigned char **pdata)
|
||||
{
|
||||
*pdata = buf_alloc(bufp, count);
|
||||
if (*pdata == NULL)
|
||||
return -ENOMEM;
|
||||
return copy_from_user(*pdata, data, count);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue