From 7b3bb3fe166702b504f1068359c9550d3b277eaf Mon Sep 17 00:00:00 2001 From: "Aneesh Kumar K.V" Date: Tue, 19 Oct 2010 09:17:02 +0530 Subject: [PATCH] net/9p: Return error if we fail to encode protocol data We need to return error in case we fail to encode data in protocol buffer. This patch also return error in case of a failed copy_from_user. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Venkateswararao Jujjuri Signed-off-by: Eric Van Hensbergen --- net/9p/client.c | 2 ++ net/9p/protocol.c | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/net/9p/client.c b/net/9p/client.c index bc7b035..e3cfdff 100644 --- a/net/9p/client.c +++ b/net/9p/client.c @@ -579,6 +579,8 @@ p9_client_rpc(struct p9_client *c, int8_t type, const char *fmt, ...) va_start(ap, fmt); err = p9pdu_vwritef(req->tc, c->proto_version, fmt, ap); va_end(ap); + if (err) + goto reterr; p9pdu_finalize(req->tc); err = c->trans_mod->request(c, req); diff --git a/net/9p/protocol.c b/net/9p/protocol.c index 3acd3af..45c15f4 100644 --- a/net/9p/protocol.c +++ b/net/9p/protocol.c @@ -122,9 +122,8 @@ static size_t pdu_write_u(struct p9_fcall *pdu, const char __user *udata, size_t size) { size_t len = MIN(pdu->capacity - pdu->size, size); - int err = copy_from_user(&pdu->sdata[pdu->size], udata, len); - if (err) - printk(KERN_WARNING "pdu_write_u returning: %d\n", err); + if (copy_from_user(&pdu->sdata[pdu->size], udata, len)) + len = 0; pdu->size += len; return size - len; -- 2.7.4