From patchwork Fri Aug 4 16:26:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnaldo Carvalho de Melo X-Patchwork-Id: 131279 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:6358:1a9a:b0:139:fa0d:b2d with SMTP id gm26csp101543rwb; Fri, 4 Aug 2023 10:49:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFJKE1xQJKcG0IKedvJx2+vTdny93pgZUNXl8MxnR/q/MODakGodaxnZQeENiH/v82+MMCb X-Received: by 2002:a17:906:c:b0:99b:d6f5:afee with SMTP id 12-20020a170906000c00b0099bd6f5afeemr2179330eja.23.1691171380202; Fri, 04 Aug 2023 10:49:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691171380; cv=none; d=google.com; s=arc-20160816; b=0QtPdFEltgxpWbZPOYWEUz5YFf4LB6JwJNHBcQTe9yl9drUV8pagbREzX2k+6Iun+S qgU1iS8fzlHl3UB8fyKOwPcjSUsBQYzMO3/NVBlXKkowR8edd/KOrw0y57vVHlkedt+T xLQ5D6QzCZNuahBI2im7lX9ZBr0JsGNobmS704bPxZG6+RhXWrIeKo+s2HZ5/kh0iA33 aWUq3ZTO4epfC6bHlRJleUbWUgFoGQUUSPkxRoVLflAxUPVO3tnoVaENqrbgQGIUPCMR ghqPJLPQhL1bMKO4kps/cdnuC9mR3AMB/88vGqxqUR7tvZ4DrVmByGi7E6taum5m3GDE BKJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-disposition:mime-version:message-id :subject:cc:to:from:date:dkim-signature; bh=K9fnbcSDQtlmlZx5xGcvP5tfpMXVvEO5Cdp1/f5/nz4=; fh=Kn7JZodw35s50fWKjdRVXYXH28v8+weD7e9SXWnRImI=; b=IjJg0Jmzi1zcaR+NYhErouURydpOgHfNTpB1+C5EyX9UA/kQvtkUSO5G/exaG4ExKl WbBWkvHvfozz1/F/Za171lyWsMw6ovvcpJQ8ScNPdY90xFyr2xrE3mPvitJ1kTRpNGmd N5LQBIIb8QZlCHrHKya+CHit+PABwQ7u45P6ujKZLuOulNWiQTxyloZSVaeW6zTRwyNs SoEGruhKJvQ7cQm5PWvMYOv3+oRilsFlME2UIGmS3289wYG39dKkxV/7jRmgWM5sMm9J B+hgZdJYef+L/oYioeCsbNiRVeFkc3EwKnKgRJxRlwlcSuXFxKawsooX2NhFTGttVyQa nJQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=KDPtu2qH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k6-20020a1709062a4600b00993a7ae9f37si731016eje.882.2023.08.04.10.49.16; Fri, 04 Aug 2023 10:49:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=KDPtu2qH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229935AbjHDQ07 (ORCPT + 99 others); Fri, 4 Aug 2023 12:26:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41306 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229770AbjHDQ06 (ORCPT ); Fri, 4 Aug 2023 12:26:58 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1AE5AB2 for ; Fri, 4 Aug 2023 09:26:58 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9D0BB620A2 for ; Fri, 4 Aug 2023 16:26:57 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C8F89C433C8; Fri, 4 Aug 2023 16:26:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1691166417; bh=ACk8geC5Ad3yUxnQnqnzZgaw1hz6IEnl1r8+DhsC49k=; h=Date:From:To:Cc:Subject:From; b=KDPtu2qHrScYkuf/q/8F0xIH+JhIxTbZ/746X8MoAYSOJxRp6CPdUJ/gQJkl4XyzO X1cfsorhrs/qAwo9ixxRa8LgcWkQxaPSyey4NvaRiTQK8OvBVXV71opX6JisuCsypl XSUvT62CI47edGvHCS9f8hT3bv7heSK1NYrdCd8Uxc0FV49yiUGCwFAWxT+hQXYP9i CipNk3E7ToUhLiEOn4Hk9PAqeIx5aa3cbYiiPMbtZ/biV2YDEYfSRH9s/DmEsLaubt hFTatrZKbZ/kWYwTi5wKiWhZl8tAE8bcoTvEPFQvNhlQDGU3U0xrL/PwyVoqvJGHvT I2zEZV6S1URwQ== Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 569EC404DF; Fri, 4 Aug 2023 13:26:54 -0300 (-03) Date: Fri, 4 Aug 2023 13:26:54 -0300 From: Arnaldo Carvalho de Melo To: Masami Hiramatsu Cc: Adrian Hunter , Ian Rogers , Jiri Olsa , Namhyung Kim , Linux Kernel Mailing List Subject: [PATCH 1/1] perf probe: Free string returned by synthesize_perf_probe_point() on failure in synthesize_perf_probe_command() Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773321721139804028 X-GMAIL-MSGID: 1773321721139804028 Building perf with EXTRA_CFLAGS="-fsanitize=address" a leak was detected elsewhere and lead to an audit, where we found that synthesize_perf_probe_command() may leak synthesize_perf_probe_point() return on failure, fix it. Cc: Adrian Hunter Cc: Ian Rogers Cc: Jiri Olsa Cc: Masami Hiramatsu Cc: Namhyung Kim Link: https://lore.kernel.org/lkml/ Signed-off-by: Arnaldo Carvalho de Melo Reviewed-by: Ian Rogers Acked-by: Masami Hiramatsu (Google) --- tools/perf/util/probe-event.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c index c7bfeab610a3679a..2835d87cb97771f9 100644 --- a/tools/perf/util/probe-event.c +++ b/tools/perf/util/probe-event.c @@ -2063,14 +2063,18 @@ char *synthesize_perf_probe_command(struct perf_probe_event *pev) goto out; tmp = synthesize_perf_probe_point(&pev->point); - if (!tmp || strbuf_addstr(&buf, tmp) < 0) + if (!tmp || strbuf_addstr(&buf, tmp) < 0) { + free(tmp); goto out; + } free(tmp); for (i = 0; i < pev->nargs; i++) { tmp = synthesize_perf_probe_arg(pev->args + i); - if (!tmp || strbuf_addf(&buf, " %s", tmp) < 0) + if (!tmp || strbuf_addf(&buf, " %s", tmp) < 0) { + free(tmp); goto out; + } free(tmp); }