inmsg should be freed in case of on_msg() failure to avoid memory leak.
Signed-off-by: Vitaly Kuznetsov <[email protected]>
---
drivers/hv/hv_utils_transport.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/hv/hv_utils_transport.c b/drivers/hv/hv_utils_transport.c
index 24b2766..1d20451 100644
--- a/drivers/hv/hv_utils_transport.c
+++ b/drivers/hv/hv_utils_transport.c
@@ -77,6 +77,7 @@ static ssize_t hvt_op_write(struct file *file, const char
__user *buf,
{
struct hvutil_transport *hvt;
u8 *inmsg;
+ ssize_t ret = count;
hvt = container_of(file->f_op, struct hvutil_transport, fops);
@@ -85,10 +86,10 @@ static ssize_t hvt_op_write(struct file *file, const char
__user *buf,
return PTR_ERR(inmsg);
if (hvt->on_msg(inmsg, count))
- return -EFAULT;
+ ret = -EFAULT;
kfree(inmsg);
- return count;
+ return ret;
}
static unsigned int hvt_op_poll(struct file *file, poll_table *wait)
--
2.4.3
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel