From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755907AbbKRNk7 (ORCPT ); Wed, 18 Nov 2015 08:40:59 -0500 Received: from mx1.redhat.com ([209.132.183.28]:43884 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755630AbbKRNk6 (ORCPT ); Wed, 18 Nov 2015 08:40:58 -0500 From: Vitaly Kuznetsov To: devel@linuxdriverproject.org Cc: "K. Y. Srinivasan" , Haiyang Zhang , linux-kernel@vger.kernel.org, Olaf Hering , Dan Carpenter Subject: [PATCH v2 1/4] Drivers: hv: utils: fix memory leak on on_msg() failure Date: Wed, 18 Nov 2015 14:40:48 +0100 Message-Id: <1447854051-5570-2-git-send-email-vkuznets@redhat.com> In-Reply-To: <1447854051-5570-1-git-send-email-vkuznets@redhat.com> References: <1447854051-5570-1-git-send-email-vkuznets@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org inmsg should be freed in case of on_msg() failure to avoid memory leak. Preserve the error code from on_msg(). Signed-off-by: Vitaly Kuznetsov --- Changes since v1: - Preserve the error code from on_msg(). [Dan Carpenter] --- drivers/hv/hv_utils_transport.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/hv/hv_utils_transport.c b/drivers/hv/hv_utils_transport.c index 24b2766..40abe44 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; + int ret; hvt = container_of(file->f_op, struct hvutil_transport, fops); @@ -84,11 +85,11 @@ static ssize_t hvt_op_write(struct file *file, const char __user *buf, if (IS_ERR(inmsg)) return PTR_ERR(inmsg); - if (hvt->on_msg(inmsg, count)) - return -EFAULT; + ret = hvt->on_msg(inmsg, count); + kfree(inmsg); - return count; + return ret ? ret : count; } static unsigned int hvt_op_poll(struct file *file, poll_table *wait) -- 2.4.3