Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753757AbbLOB23 (ORCPT ); Mon, 14 Dec 2015 20:28:29 -0500 Received: from p3plsmtps2ded04.prod.phx3.secureserver.net ([208.109.80.198]:35150 "EHLO p3plsmtps2ded04.prod.phx3.secureserver.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753674AbbLOB20 (ORCPT ); Mon, 14 Dec 2015 20:28:26 -0500 x-originating-ip: 72.167.245.219 From: "K. Y. Srinivasan" To: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, olaf@aepfle.de, apw@canonical.com, vkuznets@redhat.com, jasowang@redhat.com Cc: "K. Y. Srinivasan" Subject: [PATCH 1/9] Drivers: hv: utils: fix memory leak on on_msg() failure Date: Mon, 14 Dec 2015 19:01:53 -0800 Message-Id: <1450148521-28447-1-git-send-email-kys@microsoft.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1450148455-28399-1-git-send-email-kys@microsoft.com> References: <1450148455-28399-1-git-send-email-kys@microsoft.com> X-CMAE-Envelope: MS4wfDqTDl6THnUR3/Sb14vjC0To/QEcBJjUoBbdAbFhzpskuaruGKy28Z5+ZhQ4s3UJ2AgqkalMqtaKIA2klXvdhaEpLePBMos1/WRr5c6TzuwOamUAqX5v dhFEh1tmp5shGzTYXeBg7SEwFqAehxo5lj/h/DvrWeknOQtjal4aOawGKDh+KbI8vvYscniuN8uEC5eCxQwB6JUNgYHtTO+icmUGi1xaDVvgayw93tGmXsK9 yOi3iae9nV3EurOjUDE1j4jnRjqwo2BMFs8cTOZDpdYZGmagdbo1+HcfIkvJ3Mt2I/kkabXG22InQ9NqPOHrmjKpi/8+B5ZyiMKHrRH1lmIKk6u/nvZPiCvv DCKi9XjeikzcaU7eZZicnXmW38VjVf8TJ4D1lRROxFo9Apz3M8phkrg3fKyHGu8KKb8S0CIv Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1393 Lines: 46 From: Vitaly Kuznetsov 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 Signed-off-by: K. Y. Srinivasan --- drivers/hv/hv_utils_transport.c | 7 ++++--- 1 files 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) -- 1.7.4.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/