Messages in this thread Patch in this message | | | Date | Tue, 23 Sep 2008 16:50:45 -0500 | From | "Eric Van Hensbergen" <> | Subject | [PATCH] 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> --- net/9p/conv.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/net/9p/conv.c b/net/9p/conv.c index 4454720..5ad3a3b 100644 --- a/net/9p/conv.c +++ b/net/9p/conv.c @@ -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); }
-- 1.5.4.3
| |