Commit 16ec4700 authored by Eric Van Hensbergen's avatar Eric Van Hensbergen

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: default avatarEric Van Hensbergen <ericvh@gmail.com>
parent 62aa528e
...@@ -451,8 +451,10 @@ p9_put_data(struct cbuf *bufp, const char *data, int count, ...@@ -451,8 +451,10 @@ p9_put_data(struct cbuf *bufp, const char *data, int count,
unsigned char **pdata) unsigned char **pdata)
{ {
*pdata = buf_alloc(bufp, count); *pdata = buf_alloc(bufp, count);
if (*pdata == NULL)
return -ENOMEM;
memmove(*pdata, data, count); memmove(*pdata, data, count);
return count; return 0;
} }
static int static int
...@@ -460,6 +462,8 @@ p9_put_user_data(struct cbuf *bufp, const char __user *data, int count, ...@@ -460,6 +462,8 @@ p9_put_user_data(struct cbuf *bufp, const char __user *data, int count,
unsigned char **pdata) unsigned char **pdata)
{ {
*pdata = buf_alloc(bufp, count); *pdata = buf_alloc(bufp, count);
if (*pdata == NULL)
return -ENOMEM;
return copy_from_user(*pdata, data, count); return copy_from_user(*pdata, data, count);
} }
......
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