Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp7214056ybp; Wed, 16 Oct 2019 05:35:49 -0700 (PDT) X-Google-Smtp-Source: APXvYqyxbHyDbdggSXSdHsdpqQS4AF6I7djhiwDNTZ9svm226ioB01wrQwjE6p83t+oLLR3KEVyH X-Received: by 2002:a17:906:c443:: with SMTP id ck3mr40465171ejb.0.1571229349347; Wed, 16 Oct 2019 05:35:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571229349; cv=none; d=google.com; s=arc-20160816; b=nxXtjZEcTqVZ1wlc1bdklsaX8gr5SlyWcL5bhnw8g74Qqaf8jgkhg84ydcyi0EXveV nlqrmnYlZWw2fYqqT51/xJfgTjhOqYPZT5LKpzBNKw6cNzK2LEdq9dOubn4vMJ4UgVZ6 aWKRc0K9qMAqq70VtJyRNUXVixgUqIodrFflTSAMKKX+xOK08wMUr+yxuGTA1ZkWj1BU ji10RQgIT+nNnIai9HmLv3UtKbOiUYmusuCAwHk11YOJReMg915H/FIaY5oVK0mOx7rS EVtk1OOfuBR7dY8+B5H4wUKatKi2mCXnj2sQn73wDjb2ImmkC8VF0cTQlroKAgG8nsq0 HgUQ== 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 :content-language:mime-version:user-agent:date:message-id:subject :from:cc:to; bh=mtjMaOGgoKqmSuPtLOGTRjhH09YbJ2exmrXT6Jlun9c=; b=KcN/8CB0o91jl87a9PdhKLiz61Q394Xy70nQvQBEJtjBsaWsxuVNdceVOPnPaK18dU bNriFaR8UYOORkwq/4nd5R2u1fMU9hMQWoloX5QEIyT81I7Ke2Tlus6OIRsox1oTruPA vQ98rYEhXPzelf2LbMh6hMmDKCFdolp1+OOPiQG/ZNNNN5XYU4sJtMpmE1ydeawSIPZf 2flcaJLVtTF9KbPYw2Sx0lrlRQzgGvZLlH/f8eV53vFf+jQWU7jeML24ZeL3y+gjL5vf SvNkHCo5qKydgR3yID1VGt095OyzEcI8Zsw9D+GQbDARkvxL4wAIda9ydAqiTK3aUfYX BE4Q== 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 fk4si16411737ejb.161.2019.10.16.05.35.25; Wed, 16 Oct 2019 05:35:49 -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 S2389994AbfJPHsL (ORCPT + 99 others); Wed, 16 Oct 2019 03:48:11 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:4178 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726872AbfJPHsL (ORCPT ); Wed, 16 Oct 2019 03:48:11 -0400 Received: from DGGEMS407-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id C0F24B9D2CACB8FF994F; Wed, 16 Oct 2019 15:47:34 +0800 (CST) Received: from [127.0.0.1] (10.177.251.225) by DGGEMS407-HUB.china.huawei.com (10.3.19.207) with Microsoft SMTP Server id 14.3.439.0; Wed, 16 Oct 2019 15:47:26 +0800 To: , , , , , , , , , , , CC: , , From: Yunfeng Ye Subject: [PATCH] perf jevents: Fix resource leak in process_mapfile() Message-ID: Date: Wed, 16 Oct 2019 15:47:23 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.177.251.225] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There are memory leaks and file descriptor resource leaks in process_mapfile(). Fix this by adding free() and fclose() on the error paths. Fixes: 80eeb67fe577 ("perf jevents: Program to convert JSON file") Signed-off-by: Yunfeng Ye --- tools/perf/pmu-events/jevents.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c index e2837260ca4d..6e60d4cff592 100644 --- a/tools/perf/pmu-events/jevents.c +++ b/tools/perf/pmu-events/jevents.c @@ -758,6 +758,7 @@ static int process_mapfile(FILE *outfp, char *fpath) char *line, *p; int line_num; char *tblname; + int ret = 0; pr_info("%s: Processing mapfile %s\n", prog, fpath); @@ -769,6 +770,7 @@ static int process_mapfile(FILE *outfp, char *fpath) if (!mapfp) { pr_info("%s: Error %s opening %s\n", prog, strerror(errno), fpath); + free(line); return -1; } @@ -795,7 +797,8 @@ static int process_mapfile(FILE *outfp, char *fpath) /* TODO Deal with lines longer than 16K */ pr_info("%s: Mapfile %s: line %d too long, aborting\n", prog, fpath, line_num); - return -1; + ret = -1; + goto out; } line[strlen(line)-1] = '\0'; @@ -825,7 +828,9 @@ static int process_mapfile(FILE *outfp, char *fpath) out: print_mapping_table_suffix(outfp); - return 0; + fclose(mapfp); + free(line); + return ret; } /* -- 2.7.4.3