Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp6683083ybi; Wed, 31 Jul 2019 19:25:44 -0700 (PDT) X-Google-Smtp-Source: APXvYqzpXK+dPEl9C8f6zLicM/znSxOJpLP+KRDAWwcOFeZz6+PdarR2v+fz4rvNkeyMQ/WCKDBb X-Received: by 2002:aa7:9514:: with SMTP id b20mr51807848pfp.223.1564626344587; Wed, 31 Jul 2019 19:25:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564626344; cv=none; d=google.com; s=arc-20160816; b=sva8i/2kpWbEEOvbbrvgkHSDsAtRlmIzGFjPF6hDilnpPxGpLC35wnGqLROTpIPqlc hezSAmuXesBz/KaN61Ij07+5/z5UaBaYt2kWzR0e+xIx/1loS/mK9c0IIV4VpoJWF0mr YuY9xzX4vta0rWCHrgScoqxEue6Z6xEu9Yx2FzYbJbDhqZEPbX3t5bWNn+MDdW3dZBR+ 8s1ZnX9ueRy+RYAv5CxtVSk8s3SH6/rw78+qSr4QbqIqXNPZwqiEVJwu2wMDf6LRc8u8 uFNdUPtOkpYp+1uMd1AFld/RbT4g7dXJm6BqpKwUf0/xl3QRFKvkfS8oSeJ0OOWGhhQ0 QXgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=DcxiDohOHWt1jodiUWK7jRH+zfNb6d51ZKBmYZBXlhk=; b=tZIMm5HU+psvdVD6H9x8Tx+Eanj+qscuNiHCna5ONhdomV4+ptvLlDgT8Lhx0A7LZT SIwAiWtiDDaBwruTfoCmHHxk8BiYYyqq6tQjN9a9MZmwOaJrlOj5+7ntbPf7chIl1EM3 rZewcROaJEkO9toqOobAu50LSXjb9t+6xgyLgr9twfWPww5ezgcEUJU+/L8FrWcA9bNP SwJHQFOmN9yjdjiFRcyE4Kf/yGd8M1u1azsA3BT/gmf5lTzec9Q7O+YsuQCAQM1VOVsd nBcyVT1cSt9ElVSuAF6/uYsDVPmuOPuRwxCD9H32p3U0qT1T1lPZia3DdGe9Oipmp6uz YgAQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w12si34050130pgs.364.2019.07.31.19.25.29; Wed, 31 Jul 2019 19:25:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729182AbfHABdj (ORCPT + 99 others); Wed, 31 Jul 2019 21:33:39 -0400 Received: from szxga07-in.huawei.com ([45.249.212.35]:51210 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726594AbfHABdj (ORCPT ); Wed, 31 Jul 2019 21:33:39 -0400 Received: from DGGEMS407-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id DBF2AD35E1504DA908C3; Thu, 1 Aug 2019 09:33:36 +0800 (CST) Received: from localhost.localdomain.localdomain (10.175.113.25) by DGGEMS407-HUB.china.huawei.com (10.3.19.207) with Microsoft SMTP Server id 14.3.439.0; Thu, 1 Aug 2019 09:33:27 +0800 From: Wei Yongjun To: Alexander Shishkin CC: Wei Yongjun , , Subject: [PATCH -next] intel_th: msu: Fix possible memory leak in mode_store() Date: Thu, 1 Aug 2019 01:38:25 +0000 Message-ID: <20190801013825.182543-1-weiyongjun1@huawei.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7BIT X-Originating-IP: [10.175.113.25] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 'mode' is malloced in mode_store() and should be freed before leaving from the error handling cases, otherwise it will cause memory leak. Fixes: 615c164da0eb ("intel_th: msu: Introduce buffer interface") Signed-off-by: Wei Yongjun --- drivers/hwtracing/intel_th/msu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/hwtracing/intel_th/msu.c b/drivers/hwtracing/intel_th/msu.c index fc9f15f36ad4..2e7a04f566d4 100644 --- a/drivers/hwtracing/intel_th/msu.c +++ b/drivers/hwtracing/intel_th/msu.c @@ -1849,8 +1849,10 @@ mode_store(struct device *dev, struct device_attribute *attr, const char *buf, mode = kstrndup(buf, len, GFP_KERNEL); i = match_string(msc_mode, ARRAY_SIZE(msc_mode), mode); - if (i >= 0) + if (i >= 0) { + kfree(mode); goto found; + } /* Buffer sinks only work with a usable IRQ */ if (!msc->do_irq) {