From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E8EE7436BE for ; Thu, 5 Oct 2023 23:09:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="ydKxjYHy" Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C3AE4D65 for ; Thu, 5 Oct 2023 16:09:16 -0700 (PDT) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-59f8134eb83so23048667b3.2 for ; Thu, 05 Oct 2023 16:09:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1696547356; x=1697152156; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=GouG30KZVQtjqm6aov/swqA2g+y6OD5o5DKI6J9/hJA=; b=ydKxjYHy/+r3MmEk1WKAXHGcGhUSlEALRujuV8fZXUzyYkUXoOTRuBRx+QeQJOckMG mTTeVxR4gzbBXAFF/ZCKAdHtEDPYWVjnH47SF6EI4wBrS0AeIjO1edL5VuF7YVShxj1/ o1fPhwUZCGOwfpzzWfLhaPF/at1IaPpxaW2g16ov4RYNrD1tBOo87BlHk13QaePpej2R JNYTaiBKhgIIeq4tLwCB0dE8FUovG8CFyl4kuxpw/90QasEoywvBmBvfL5Vdg1cIAgDv E7zx2AVYT9JUnvSUjlvZYFnC93WS2+RFDKr6CFoWAEYXLhZJna5l6JxzzborXQN+12+b pGcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696547356; x=1697152156; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=GouG30KZVQtjqm6aov/swqA2g+y6OD5o5DKI6J9/hJA=; b=QSLLZtns1JTl3IHra7Oj8WvGcCqWylg54Uo9VmOGB7Qm52k78TLVYIwEcCgCFB6ACr wwoOBtGmAXheZzYC8qc2i8Whjdtd5kzC5VbTy8Agmb6Cu/zwnjObKozRexCzDo7kXm6q 9xMKpMb+XrffFMCfZ3eMEq3KNo4m2dAAzzRlbS/AfBxnmTn8nTkNszhT/Cxa9b33hGQM R9I0P/Fy25dCgFLtgOfFCQg7Rt1YBLXDkP+bjzIhLTuR5RY4fFen/Q6TdA9LQ5tdjxi8 VGgyuefJNHPPGfEYgeFQIG9DgEjElhaH6ALiuiu6QDgH80cPtB/y3/LnaBUB4aOtK7Ds IfzQ== X-Gm-Message-State: AOJu0YzyO5wLIcu5tBwI4QGc8MqsOC53NGfupPx22z0oMh5vjfDujP0g 1we6/chahqWMsepTioruTtB33AxG+PJS X-Google-Smtp-Source: AGHT+IGONU+OowDDx8a+TbL/FH+ObTrGvfI1GY50R5S+RVIAsaEN1VZNRoea3AVWMrrmFuuADHtm0K7HKpil X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:7449:56a1:2b14:305b]) (user=irogers job=sendgmr) by 2002:a81:430c:0:b0:576:8cb6:62a9 with SMTP id q12-20020a81430c000000b005768cb662a9mr115006ywa.6.1696547355929; Thu, 05 Oct 2023 16:09:15 -0700 (PDT) Date: Thu, 5 Oct 2023 16:08:41 -0700 In-Reply-To: <20231005230851.3666908-1-irogers@google.com> Message-Id: <20231005230851.3666908-9-irogers@google.com> Precedence: bulk X-Mailing-List: linux-perf-users@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20231005230851.3666908-1-irogers@google.com> X-Mailer: git-send-email 2.42.0.609.gbb76f46606-goog Subject: [PATCH v2 08/18] perf jitdump: Avoid memory leak From: Ian Rogers To: Nathan Chancellor , Nick Desaulniers , Tom Rix , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , Adrian Hunter , Yicong Yang , Jonathan Cameron , Yang Jihong , Kan Liang , Ming Wang , Huacai Chen , Sean Christopherson , K Prateek Nayak , Yanteng Si , Yuan Can , Ravi Bangoria , James Clark , llvm@lists.linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, bpf@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net jit_repipe_unwinding_info is called in a loop by jit_process_dump, avoid leaking unwinding_data by free-ing before overwriting. Error detected by clang-tidy. Signed-off-by: Ian Rogers --- tools/perf/util/jitdump.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/perf/util/jitdump.c b/tools/perf/util/jitdump.c index 6b2b96c16ccd..1f657ef8975f 100644 --- a/tools/perf/util/jitdump.c +++ b/tools/perf/util/jitdump.c @@ -675,6 +675,7 @@ jit_repipe_unwinding_info(struct jit_buf_desc *jd, union jr_entry *jr) jd->eh_frame_hdr_size = jr->unwinding.eh_frame_hdr_size; jd->unwinding_size = jr->unwinding.unwinding_size; jd->unwinding_mapped_size = jr->unwinding.mapped_size; + free(jd->unwinding_data); jd->unwinding_data = unwinding_data; return 0; -- 2.42.0.609.gbb76f46606-goog