p9_put_data is called by p9_create_twrite which expects it to return a
non-zero value on error. This was the reason why every p9_client_write
was failing. This patch also adds a check for buffer overflow in
p9_put_data.
Signed-off-by: Abhishek Kulkarni <kulkarni@lanl.gov>
---
net/9p/conv.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/net/9p/conv.c b/net/9p/conv.c
index 4454720..7f6db15 100644
--- a/net/9p/conv.c
+++ b/net/9p/conv.c
@@ -451,8 +451,11 @@ p9_put_data(struct cbuf *bufp, const char *data,
int count,
unsigned char **pdata)
{
*pdata = buf_alloc(bufp, count);
+ if (buf_check_overflow(bufp))
+ return -EIO;
+
memmove(*pdata, data, count);
- return count;
+ return 0;
}
static int
Thanks,
-- Abhishek
--