Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -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);
}