From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757788AbdJMIkQ (ORCPT ); Fri, 13 Oct 2017 04:40:16 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45566 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757638AbdJMIhp (ORCPT ); Fri, 13 Oct 2017 04:37:45 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com ACA287E387 Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=none smtp.mailfrom=jolsa@kernel.org DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com ACA287E387 From: Jiri Olsa To: Arnaldo Carvalho de Melo Cc: lkml , Ingo Molnar , Namhyung Kim , David Ahern , Peter Zijlstra , Andi Kleen , "Jin, Yao" , "Wangnan (F)" , "Du, Changbin" Subject: [PATCH 2/9] perf tools: Add extra integrity checks to fmt_free Date: Fri, 13 Oct 2017 10:37:29 +0200 Message-Id: <20171013083736.15037-3-jolsa@kernel.org> In-Reply-To: <20171013083736.15037-1-jolsa@kernel.org> References: <20171013083736.15037-1-jolsa@kernel.org> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 13 Oct 2017 08:37:44 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Make sure the struct perf_hpp_fmt is properly unhooked before we free it. Link: http://lkml.kernel.org/n/tip-8umo89ntt3kawmfwsivav43t@git.kernel.org Signed-off-by: Jiri Olsa --- tools/perf/ui/hist.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/perf/ui/hist.c b/tools/perf/ui/hist.c index 6ee6b36bbc76..db79017a6e56 100644 --- a/tools/perf/ui/hist.c +++ b/tools/perf/ui/hist.c @@ -606,6 +606,13 @@ void perf_hpp__append_sort_keys(struct perf_hpp_list *list) static void fmt_free(struct perf_hpp_fmt *fmt) { + /* + * At this point fmt should be completely + * unhooked, if not it's a bug. + */ + BUG_ON(!list_empty(&fmt->list)); + BUG_ON(!list_empty(&fmt->sort_list)); + if (fmt->free) fmt->free(fmt); } -- 2.13.6