From nobody Tue Sep 29 10:31:59 2026 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA0663AAF49 for ; Sun, 9 Aug 2026 07:15:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.199 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259707; cv=none; b=TvmqtO4Md6kRISU60uuexjdc+zwJqzpmiVnBeyXV8JCkJrnUvKfDhRkn2o84s8CRi1mbWn3+iJfcBMPrlM4q8HDqV8Rm5u1C3PnihMC2+LuQxeEjY3fz3Vfenj5WgcoFvepCTcu8zm7uSqSHctGmHIDbWs28nIxjm9xg5ekyLBI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259707; c=relaxed/simple; bh=gu4JmblVv7LZ8mh2w/vK0itTuIYVGGtu2PAK2cVEN08=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=kNcD9lFLOj5m4SSpQ3+zm55gwMvbYbOMg3bBXLFZTm4cafCBkYxLEVH5sMLO/quoEdLKvsxPlXHnLC8tRVhOkbSywU7PaC/dNZhQzpB9Sac/l+Wxa2BIVIVXRkOEM3sKmeDdjgIRvh2QM1v+2JKH46q3FVCG1PhjpjcZ7MhKTos= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=f4anMKo4; arc=none smtp.client-ip=209.85.214.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="f4anMKo4" Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2cc88e22f92so24854555ad.1 for ; Sun, 09 Aug 2026 00:15:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786259705; x=1786864505; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=wmLwD1z8Vp5YH6ks1S+BnDxVzcwfvN4i58qyMDnWh1k=; b=f4anMKo4zCob/8H1uctm7YBDDNqjSTS0hqAdeeeXaFOdSPKd2o5+GbZ/AnwXNtoGdd +F7Pz3NHrK2Big2jpFSOJCp2eAAA/9+vlC3NT5R1jMNhxi3SdI2Ud2rjna+UYua3HTyE DttoBGP2EYJ2JvbpsIZHIbwIZGqoyLKYbdcsZBCzapTTpf1Faxb85WGCV3TdNHXP6Pe/ DQKgj/7MbTzR/XTvjgpDiC5+dJKGZZBpsMi32Y8b8RZmvLRJ6Nb/pL75WMvnUBwz1VZW RP+DlTlcxoolEm4T6vmNDOQB7JJR1F7Sl5uz76ONbBnb8C970kZ24TX9EtY8WWwiONHj 4wiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786259705; x=1786864505; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=wmLwD1z8Vp5YH6ks1S+BnDxVzcwfvN4i58qyMDnWh1k=; b=fquNUs2rP0j2gc55TUAEvXA6yf3bUenlCEZI0prfycyy6I+pxPuGnLnPV4jGgjpoPq hfc5qdbpTdqpbzbfILEX211Gj07+d1FO1+C8UomxMZV89PgksQU6PupEdeQRBHxJ9T0f yL6IMl1KrcwmWuNwpVv14EvwTU7Ry+XLT2o5C1Sj6TgxiGWQ/Ex6rv9jaxWK6zsODztP ttyYKhRI1D8VZezc206qTufEbM07ON1OLIqks/a2OVbdXfh6YPeYX9VRVuWsURdnB7en v0tsBkUmOVI/1gP0q2rtuj11e8DvbTKi46YSkMiO5yyar8W49rdPBB2Aw901iKQDiKpz u//A== X-Forwarded-Encrypted: i=1; AHgh+RqFXxTAcY7lEwfrZuL6Thfg28V/QxaiLcj+iBRfPDIdsY309B9Ogc2V0CHlzGHfcX7Uko9CnRgG8oCFcz0=@vger.kernel.org X-Gm-Message-State: AOJu0Yy/tHdElwn0glFb3zPhQTCg1x9jtfyvSXp8WPHcBmi0gNgPvccB f8YO7LS0nqumuS0/muBvPnMYo0bpZTEc8iZZKL3ar3nx6kmV8l4xSJvmfHazcHABBq/ZmlyxmFl F4Mptsp6BRQ== X-Received: from dlbur22-n1.prod.google.com ([2002:a05:7022:ea56:10b0:13b:9778:570]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:498b:b0:38e:7268:220d with SMTP id 98e67ed59e1d1-3903c628176mr38042175a91.20.1786259704814; Sun, 09 Aug 2026 00:15:04 -0700 (PDT) Date: Sun, 9 Aug 2026 00:14:40 -0700 In-Reply-To: <20260809071455.1221514-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260624051535.3584977-1-irogers@google.com> <20260809071455.1221514-1-irogers@google.com> X-Mailer: git-send-email 2.55.0.679.g6767b8d81c-goog Message-ID: <20260809071455.1221514-2-irogers@google.com> Subject: [PATCH v3 01/15] perf script: Fix metric_evlist leak in script_find_metrics From: Ian Rogers To: irogers@google.com, acme@kernel.org, namhyung@kernel.org Cc: adrian.hunter@intel.com, alice.mei.rogers@gmail.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, leo.yan@linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tmricht@linux.ibm.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Fix a memory leak in script_find_metrics() where metric_evlist is leaked when returning early on error paths. Assisted-by: Antigravity:gemini-3.1-pro Fixes: 3622990efaab ("perf script: Change metric format to use json metrics= ") Signed-off-by: Ian Rogers --- tools/perf/builtin-script.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index f91d8b1fbd01..ad8ca08ceb5f 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -2276,8 +2276,8 @@ static int script_find_metrics(const struct pmu_metri= c *pm, } pr_debug("Found metric '%s' whose evsels match those of in the perf data\= n", pm->metric_name); - evlist__put(metric_evlist); out: + evlist__put(metric_evlist); return 0; } =20 --=20 2.55.0.679.g6767b8d81c-goog From nobody Tue Sep 29 10:31:59 2026 Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9967C3AAF4B for ; Sun, 9 Aug 2026 07:15:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.69 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259709; cv=none; b=LlEbXwhr+DvGv81kelogUJ9etkSw+bIZAYFKNsRs8Zj/RwozZ7BF74hRORnkqVtD//q9wzl1Ce5N33+wtEQLFP8lVpkk7pjc+4NMM7yM4n2W5laXhjpB9z97FJJVlodnlv6eLjwq68wmUmbG5jjQl2E4IpStSMRQ6JD0CezPy9I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259709; c=relaxed/simple; bh=fE2h2wqf9PkXtGvDyYSw3fuAbsa+IBaCefyXvPXLx4Q=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=chidJ5uf3lWXPtsURa8Bunqz3u1UeS0zT4aWFV2wfL6SlxRtU3Q3qGtQi0ygzgj5t9JnBogIrGJgBg6j5Tj2NXKfSE/aUV0oRC47OVjpY0XYfefmOeFq9gznaf8sDCsEHnxrEX80ZuyyyOx7IdRWwayZXyyrUJY8PPoZrwLl6rM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=P8wDJ/3K; arc=none smtp.client-ip=209.85.216.69 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="P8wDJ/3K" Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-38e8e864ef0so1466585a91.0 for ; Sun, 09 Aug 2026 00:15:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786259707; x=1786864507; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=6kXa+8u1WFNiwjJIT6vum7T25llaMli9fa4qouDOqcY=; b=P8wDJ/3KFkMFInb2Yr4NDnffuKk6cevmn+dBTiysybfby6mbbyPVrq8JWVTntX29Ha jwFX9dNqQmlPDZZAwCYf9g8VK9vNqy4l/X/WRvMRmYXN6KTX9UVXJigxZPVEWPmNYP63 9PJ6BwWCiJR1wqZtzXj58Y70ZMZwFNqJl7XRx74vBjQ/z3B1MGtQWn81hmoTw45UyGum Mf3CofwkR4fMa/47fEu50pIiU7QjVfynmQt5Tl+RSTJS75LRxmjfz8AjRqPMYcWp+01i 1Z+22tl5oj7YkB7/6fartRULlb79ECILmLsvd8Par9sQW6zWsKEj/R5uQ/1CLbcLQiC+ tdGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786259707; x=1786864507; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=6kXa+8u1WFNiwjJIT6vum7T25llaMli9fa4qouDOqcY=; b=m3SPXceAiYgfjhDEE04vvpmroYIu9QlAyPhhvVgpmcFy2sEAa+1HBbAPH8kD0gvUBq lVWEJ40CVi3Iu5aJ/Kod0cT73OZJ9W40WHHOzPDqXccRw++uFR61B8YIwQbqwQksRnZS vFDCoM9U8IKYmXy+G7zQUL3hcx95DXZhePIazB5kJ6qBcygtUAkTFQFaUa/QfbTxz7ob iiRW7BRP2jdSV+ILamDOh0OorR4WTmkzVLrio7yY+Ut4vL6EbPlMw2EcnRQVKmv4hB5N 2lV3WGOFD88zsHrSZ0a4Piy7P38A7Q0+815ucYzCoZR2r8H4geYj4xlLtj1Q8U4RhdGn 8bfw== X-Forwarded-Encrypted: i=1; AHgh+RrLBS2ZSIH7h6Y/af7BPCo+7I13CK0FEWovux7j5CK6CXAH0s0qrmo5XMHxBTC35u4BjT5gZF8teb2L8xw=@vger.kernel.org X-Gm-Message-State: AOJu0Yz4DH6ksfB9Y7dcVWMz5/YO81AaEmOwJb/JjiZ4ATs4sF3B8em7 6rCe+C/hVfuQb+VuS/s/MKgXurRe+6BTbhCK1FIMZJY3XJxHhiMwzNwsNGyDoXhoOeguLI4CzH6 S9b18y47eEQ== X-Received: from dlg18.prod.google.com ([2002:a05:7022:792:b0:13e:6e68:2a1]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:528c:b0:380:9f17:6df3 with SMTP id 98e67ed59e1d1-3903c5448dcmr35930649a91.4.1786259706710; Sun, 09 Aug 2026 00:15:06 -0700 (PDT) Date: Sun, 9 Aug 2026 00:14:41 -0700 In-Reply-To: <20260809071455.1221514-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260624051535.3584977-1-irogers@google.com> <20260809071455.1221514-1-irogers@google.com> X-Mailer: git-send-email 2.55.0.679.g6767b8d81c-goog Message-ID: <20260809071455.1221514-3-irogers@google.com> Subject: [PATCH v3 02/15] perf stat: Fix evsel_list leak in cmd_stat From: Ian Rogers To: irogers@google.com, acme@kernel.org, namhyung@kernel.org Cc: adrian.hunter@intel.com, alice.mei.rogers@gmail.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, leo.yan@linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tmricht@linux.ibm.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Fix a memory leak in cmd_stat() where evsel_list is leaked if an error occurs while opening the output file. Assisted-by: Antigravity:gemini-3.1-pro Fixes: 361c99a661a7 ("perf evsel: Introduce perf_evlist") Signed-off-by: Ian Rogers --- tools/perf/builtin-stat.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index d68a2617a920..c50cf230f16e 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -2735,7 +2735,8 @@ int cmd_stat(int argc, const char **argv) output =3D fopen(output_name, mode); if (!output) { perror("failed to create output file"); - return -1; + status =3D -1; + goto out; } if (!stat_config.json_output) { clock_gettime(CLOCK_REALTIME, &tm); @@ -2746,7 +2747,8 @@ int cmd_stat(int argc, const char **argv) output =3D fdopen(output_fd, mode); if (!output) { perror("Failed opening logfd"); - return -errno; + status =3D -errno; + goto out; } } =20 @@ -2755,7 +2757,8 @@ int cmd_stat(int argc, const char **argv) parse_options_usage(stat_usage, stat_options, "o", 1); parse_options_usage(NULL, stat_options, "log-fd", 0); parse_options_usage(NULL, stat_options, "interval-clear", 0); - return -1; + status =3D -1; + goto out; } =20 stat_config.output =3D output; --=20 2.55.0.679.g6767b8d81c-goog From nobody Tue Sep 29 10:31:59 2026 Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4289A3A875A for ; Sun, 9 Aug 2026 07:15:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.72 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259711; cv=none; b=vBkB5mhTWccsIIEwNw8Icztj8+PDrYMiBZ1/4nK98IJ7MfWAHHkRTjFfsCMFc/mPukoK3t9pY/ryzz4LvYCQ98YqrlKtNF43jJPHmOWsER/o/nh5ZPX3JWkhOw7QZwaAWkPIZnsOtI+jPhuSN+WmVY+bCGBkeHd9tMbuBrLefS8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259711; c=relaxed/simple; bh=EkELwjuoEifgq4yoiaYV05o2puOmeFtCBPEzq98DDQ4=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=UPY/L15u/Eo0lhKQEUPJaWnc6O075qpeH18lYU633PHcDcR3O+w8TCZlXp50At0ddfeulrguMMrtbT6e76F83jjISdwGjq2EHx+J52wXll8lTMr10CCdpDo42OKsrdp63dGjuJO5rCwatquVzfsjxnes5VO92eO1gcZg3H83rY4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=Tvyh45Lh; arc=none smtp.client-ip=209.85.216.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="Tvyh45Lh" Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-38fa7b09921so1680402a91.1 for ; Sun, 09 Aug 2026 00:15:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786259708; x=1786864508; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=P0IYRX3k7fgU84M+1N/2f6gf9z+pbW3gfbOLrfXfOEg=; b=Tvyh45LhrgkR9nhkSrn+mMopYKiSCwmgUo6IOs+6/Gd+8SMwQCCpRHT8aeVwBMoluR LVsvY+A6az2XhaHEu519kig3oLucmG8PYON+JI0nte9ZhuAn2yS5eFsQEUIbOrU0eaLT S44y5+RvP3TzIvCQUM4kXZWTPXbtsbr3EM2rulG8GuW3p6+jpYB1vCH/E2LeCMgxdqh+ acyb2DztugmTX/8tc6s1cqMPHxfXd67PHPfDl7W6a4pZ1KzI3qIZxf1A6b8yl6hGU4dT +8QiqMOoZc/qFyoi+ku8yybhdc4s5wgwtWI7jlJjrNUc1ImC1TdH7haYR2R+UZAfTPeq Efwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786259708; x=1786864508; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=P0IYRX3k7fgU84M+1N/2f6gf9z+pbW3gfbOLrfXfOEg=; b=K2oGBNlA0TXvx6n55WjWbX/YUV/XE3ac+3dtvYDmo6dT/1uIydYyUva3W3Io126lME 8tbb0K1d178If3saDCuY+xRr2rOiluu6xjHGWHpGNGwf/RW/K/cWLu0fyRhyK8AY5XUn DWmsKqsEg27Em96qLPeE9R+hL5/jNuQIfE9MW0rIo3btVEtXqjZVIu+OaSfYTwiL9Fux TxqQsZbi9A0mafjnhyssTOHShJEwIgjfCZqdehck+7l/1YvkELYQ3Bsyb08VobD9V46i OxPwbXhyJP1tqL2Op6g36G4QnuFp+jLjuSkFqnXTfCTNzSVpe+m7gPQB1Jil5Azz1v3a WbHA== X-Forwarded-Encrypted: i=1; AHgh+RpaBQl98efKh2HDbMQX6dp6Rr3wuzHSGKo6gdRgLe5yMoeggOkYFbbBCCeELK1chfD0y8yTAs21xiLYjXM=@vger.kernel.org X-Gm-Message-State: AOJu0YxmwmHVrW7azcqCzGWIQa7B5t64m9dRnzhgqg0dp0AhXE0FqwGO GBh3vXdWEDuLPDdiXw6rP1W4QwLuarMH8R9nsMF77Krr843MDhrqsOYCdg6M6WC+UzlCKNg9wSH qtmbaKoDokA== X-Received: from dldyr9-n2.prod.google.com ([2002:a05:701b:4509:20b0:13c:bfe9:dc09]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:3f43:b0:37c:6130:7a5b with SMTP id 98e67ed59e1d1-3903c54302bmr35912690a91.8.1786259708257; Sun, 09 Aug 2026 00:15:08 -0700 (PDT) Date: Sun, 9 Aug 2026 00:14:42 -0700 In-Reply-To: <20260809071455.1221514-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260624051535.3584977-1-irogers@google.com> <20260809071455.1221514-1-irogers@google.com> X-Mailer: git-send-email 2.55.0.679.g6767b8d81c-goog Message-ID: <20260809071455.1221514-4-irogers@google.com> Subject: [PATCH v3 03/15] perf tools: Fix sb_evlist leaks in top and record From: Ian Rogers To: irogers@google.com, acme@kernel.org, namhyung@kernel.org Cc: adrian.hunter@intel.com, alice.mei.rogers@gmail.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, leo.yan@linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tmricht@linux.ibm.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Fix a memory leak in cmd_top() where top.sb_evlist was not freed if evlist__add_bpf_sb_event() fails. Note that evlist__start_sb_thread() and evlist__stop_sb_thread() take ownership of the evlist and free it, so we must only free it if we fail before starting the thread. Also set top.sb_evlist to NULL to prevent use-after-free bugs. Apply the same fix to builtin-record.c to avoid leaking rec->sb_evlist and calling pthread_join on uninitialized threads in the error path. Assisted-by: Antigravity:gemini-3.1-pro Fixes: b38d85ef49cf ("perf bpf: Decouple creating the evlist from adding th= e SB event") Signed-off-by: Ian Rogers --- tools/perf/builtin-record.c | 2 ++ tools/perf/builtin-top.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index f58d7e3c7879..a57987851cf0 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -2258,6 +2258,8 @@ static int record__setup_sb_evlist(struct record *rec) =20 if (evlist__add_bpf_sb_event(rec->sb_evlist, perf_session__env(rec->sess= ion))) { pr_err("Couldn't ask for PERF_RECORD_BPF_EVENT side band events.\n."); + evlist__put(rec->sb_evlist); + rec->sb_evlist =3D NULL; return -1; } } diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 5933c46ee137..570410599f1b 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c @@ -1881,6 +1881,8 @@ int cmd_top(int argc, const char **argv) if (evlist__add_bpf_sb_event(top.sb_evlist, &host_env)) { pr_err("Couldn't ask for PERF_RECORD_BPF_EVENT side band events.\n."); status =3D -EINVAL; + evlist__put(top.sb_evlist); + top.sb_evlist =3D NULL; goto out_put_evlist; } } --=20 2.55.0.679.g6767b8d81c-goog From nobody Tue Sep 29 10:31:59 2026 Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 19A163A9852 for ; Sun, 9 Aug 2026 07:15:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.200 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259712; cv=none; b=h+IehK17vBM86dX3OFWfmsr6YKfy07yE3I3bQIEWUlZ+KlvQEA25sxT3DHd/QCCfa0ri7uXuIJGHqXSKxfUfrgfASSuE2Mvmhf5BuE/RySnEOEVbs5tGyRewzxt5Z5Gol5mCSS9iUBbDedeyf5hduL/8wRyXof3ykcMajLTKTzo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259712; c=relaxed/simple; bh=LdRqfYW89uofR6tAJTdTGQmwf9gmFBmDRzi9+itJXKU=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=MCvnCBYfYKwq71MT6Ac/kxtTn7mr7k/G+n+OHesK5dynOCFmQDBSTRMheiajoMXQQzpCyLVge9bEKo3VRsoN02OuFwpCs+M5VYRWosOaMf/cfdiyojycTRjvVbr/M4x+ghgXA0Vd40UlS0BiRl/DBLCfN+BJlogT0wg/IGXU0XI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=q46l23bz; arc=none smtp.client-ip=209.85.214.200 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="q46l23bz" Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2cfa4e4684bso28396895ad.2 for ; Sun, 09 Aug 2026 00:15:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786259710; x=1786864510; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=YvCKU3o2iNN7R3SZ+QP0rUsV6kh1WL0nD/UwzkIgjsg=; b=q46l23bz49NMhZb2zIr7eOxK33PC1ks97x8GZNRDy5a2X/2b3kD1QCGN+QjlhDdYpa 5d3BzcoOGMUQmZskIQcrD9sot5CuuChDJiyYqjUOO3JEwpmEew/hVJ8B6W+HC6LHcHa8 k2tWqF0uPQ065U5hDlXH2xViIJRwPmRiAv/CGCXkTh0qiVVWicax6+GPUP8Rnbi+vqrx kB5WTzf0vXNjtq/AsHwfhLPALRginnbmWohC+UZ1lGVlbmJ/sEraoMHL4ig6KaknL94F U87xpTUgHpNznMBHXzb5VCPIPUGScGV+dMsVcFzaazscY/OP6lKiM/nzTsIZS/I75QUp rsyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786259710; x=1786864510; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=YvCKU3o2iNN7R3SZ+QP0rUsV6kh1WL0nD/UwzkIgjsg=; b=ojaICEPAEvhcMSRlU3FhtTnP1rOJsBVJCSE68GyF2PdVEhWIV+YzYwvaBoFfKwbzTs r9rfGEoeO//ciybxKpS4zGqMHqJaLjprReto8+Nv8zDi6ie7Ikzch7FKV9NiCZKW1kJo fK+J2kov4N5KbkZN1WNCx1XS5/ce4gpRP28hoUdOz9CS5u36ZJ80Dmst2cw8IbGJo67i DJz+b1lyboTtNnM/GaQALbKgAgIcY3fPXNNyo+7sY5fo+No0R+VcCJKSAO7qSA7a62jq FycSAvTgy1dLh6SPm0cVYgR8bII6Ekp7JjE4JVKhxeazwqOhnvdLzyDsK8I8K0xSGFzD izRg== X-Forwarded-Encrypted: i=1; AHgh+RqXEtJbwOXtb8fYEtpcKbcYrdeNBi0ySFLmXldl13baz2sUa/HsAGpe48WwQJoNeha1z+r9JbcnSBVlBhY=@vger.kernel.org X-Gm-Message-State: AOJu0YwIjxzdvuKYld7vSAAHovBtONMgyoF8ft605j31SuAaGxNMWf6H 0p9KiN2xS3qZOzUIv7OhPLCMejf5kCSEtIW5AM8xMg0TeUAJfySnJu7cSE0CHlKVtAuhd6jXbGz oORIJKDYkug== X-Received: from dld11.prod.google.com ([2002:a05:7022:30b:b0:13e:5fe8:61ef]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:3391:b0:39c:126c:93b5 with SMTP id adf61e73a8af0-3cbc03b56b6mr19321582637.21.1786259710311; Sun, 09 Aug 2026 00:15:10 -0700 (PDT) Date: Sun, 9 Aug 2026 00:14:43 -0700 In-Reply-To: <20260809071455.1221514-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260624051535.3584977-1-irogers@google.com> <20260809071455.1221514-1-irogers@google.com> X-Mailer: git-send-email 2.55.0.679.g6767b8d81c-goog Message-ID: <20260809071455.1221514-5-irogers@google.com> Subject: [PATCH v3 04/15] perf python: Fix memory leak in pyrf_evlist__get_pollfd From: Ian Rogers To: irogers@google.com, acme@kernel.org, namhyung@kernel.org Cc: adrian.hunter@intel.com, alice.mei.rogers@gmail.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, leo.yan@linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tmricht@linux.ibm.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Fix a Python list object leak in pyrf_evlist__get_pollfd() by adding a missing Py_DECREF on the error exit path. Assisted-by: Antigravity:gemini-3.1-pro Fixes: 877108e42b1b ("perf tools: Initial python binding") Signed-off-by: Ian Rogers --- tools/perf/util/python.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index af85c0771c44..c7ae1f85aec6 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -2825,6 +2825,8 @@ static PyObject *pyrf_evlist__get_pollfd(struct pyrf_= evlist *pevlist, =20 evlist =3D pevlist->evlist; list =3D PyList_New(0); + if (!list) + return NULL; =20 for (i =3D 0; i < evlist__core(evlist)->pollfd.nr; ++i) { PyObject *file; @@ -2843,6 +2845,7 @@ static PyObject *pyrf_evlist__get_pollfd(struct pyrf_= evlist *pevlist, =20 return list; free_list: + Py_XDECREF(list); return PyErr_NoMemory(); } =20 --=20 2.55.0.679.g6767b8d81c-goog From nobody Tue Sep 29 10:31:59 2026 Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C83703AB480 for ; Sun, 9 Aug 2026 07:15:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.197 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259714; cv=none; b=EEkeY1gN7u7INvB/jheVBmaDXvf/sqVJ7sb/kQjI5lVv+N8SJfJQLatRxvadZushlktEj+RqaGV3OocrnyFtukfH/wjKb+EP064drbI4LrbgFlbUlImnOol+ymLdf9Qxlnz1Svi83fFChT4Wm4L+vh6MzBSVQWx6GqtqNtXx5e4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259714; c=relaxed/simple; bh=VjEx0Rc8kSYoI06IJ52/Wy0QYVQQ/E0WJX0p4fzuaIg=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=dISVOxxvHP8uVKXUM8E9lbrHmP/NoL7xMmnHT9/ssu89VElPdDoRDYudSrXbJj93GFGEpwFpiUiMDGzS7YqCawL27af9GcrK2ZK1pXSrf4p2tsyoHbrLhFG5gRbTmGGImXeKXZI+VsrvVlQ/BuoDv/F85EyW8dWmx6KT+VIHM3s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=syLDhGij; arc=none smtp.client-ip=209.85.215.197 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="syLDhGij" Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-c89704da8c7so1480472a12.0 for ; Sun, 09 Aug 2026 00:15:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786259712; x=1786864512; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=jPYjLCjJI30RI52LUn8RaWVxhtcmVMJzJLmM3HtSGHM=; b=syLDhGij3ZG8fAeSQwyV8V6Vo0mO7tjhtsMoYzTRk/Um/nlR0yUtpo9b4Qjayuh+XF sPvPZi16Xe96dGJ7dGngpEuXU5iLWmqNsMdtty79OlC5PGzs5KG1yltq7DkAtGFo9wM1 EfMknM65YjPtbIPQGwq3v6k6WyEMSIA4/S2XXtWwnnb/Rl3cmL5pGkZC73uSGx2jUDr9 5cEuPrnqw727T0z5wulMYFPZ9DCzi1DYqkCRtXHSdQKRWz3620K7oaejYvRnshahr/vE IXIE+LAnrxvCkS2H3NGBepOgKEjgidfjJkhGyUZ5bs3oa+8O5PcDqZzS4vvzmkMbm3AV QXKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786259712; x=1786864512; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=jPYjLCjJI30RI52LUn8RaWVxhtcmVMJzJLmM3HtSGHM=; b=JM306BRpXFAkB1ppkHi3O2OWMk4bSCnDgkPju5BCarJ09v49KQpQ+fzMjLBAlm8kb3 NFJeZLGIriHJMrA3dQZnt4UhqnLI7VzXRveugeZAOJ2RGdrzioT/iQGJIXgofSdPuX/0 wM73awwbbYb7/dIeG63B4tX5utn8hYPm8ixe2smWEd0pY8JTs+F/3FlcB6rSrYnupnkJ RYxPjwut9MlCQbFvebdxI0iUP+6JsGP7W9LxW8610unB007Vgok/ULnRjjWdIZXw80Mb II1frDISRlSkn5JgeNU84DCGmT7BPOm40U13/LC32LX5a8+VHtFrpOe1oeXwnHFQvmPN Ir7w== X-Forwarded-Encrypted: i=1; AHgh+Rq9l/saHUK+DL4+aBxnnVlakmaA8CEaX/fRw/NMX6ZmX8j4LE+kBh1yn5ENNvD5E5gia/j2clk8CXxozVo=@vger.kernel.org X-Gm-Message-State: AOJu0YweTdDi7N3LMlVtL95/XEtmfHVKWuWXFwK5xltlJLrh19+fQ8C0 wpxna1qEec2zFUXgPomZk02zNOsTdS62pbjzDdz9l8SUC7ms++Mpix8G9sGl9yuAZKxwx+7/1SA 3TA+gTJ8PPw== X-Received: from dli20-n1.prod.google.com ([2002:a05:7022:294:10b0:13b:97f1:acba]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:164a:b0:3c3:a08d:5b44 with SMTP id adf61e73a8af0-3cb85ef9234mr41982540637.23.1786259711901; Sun, 09 Aug 2026 00:15:11 -0700 (PDT) Date: Sun, 9 Aug 2026 00:14:44 -0700 In-Reply-To: <20260809071455.1221514-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260624051535.3584977-1-irogers@google.com> <20260809071455.1221514-1-irogers@google.com> X-Mailer: git-send-email 2.55.0.679.g6767b8d81c-goog Message-ID: <20260809071455.1221514-6-irogers@google.com> Subject: [PATCH v3 05/15] perf synthetic-events: Fix uninitialized pthread_join From: Ian Rogers To: irogers@google.com, acme@kernel.org, namhyung@kernel.org Cc: adrian.hunter@intel.com, alice.mei.rogers@gmail.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, leo.yan@linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tmricht@linux.ibm.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In perf_event__synthesize_threads(), fix an uninitialized pthread_join() call when thread creation fails by only joining the successfully created threads. Assisted-by: Antigravity:gemini-3.1-pro Fixes: 340b47f510bb ("perf top: Implement multithreading for perf_event__sy= nthesize_threads") Signed-off-by: Ian Rogers --- tools/perf/util/synthetic-events.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/synthetic-events.c b/tools/perf/util/synthetic= -events.c index 75a32ae8ef62..3583a60cc487 100644 --- a/tools/perf/util/synthetic-events.c +++ b/tools/perf/util/synthetic-events.c @@ -1221,8 +1221,8 @@ int perf_event__synthesize_threads(const struct perf_= tool *tool, } err =3D 0; out_join: - for (i =3D 0; i < thread_nr; i++) - pthread_join(synthesize_threads[i], NULL); + for (j =3D 0; j < i; j++) + pthread_join(synthesize_threads[j], NULL); free(args); free_threads: free(synthesize_threads); --=20 2.55.0.679.g6767b8d81c-goog From nobody Tue Sep 29 10:31:59 2026 Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D9A6C3A7193 for ; Sun, 9 Aug 2026 07:15:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.199 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259716; cv=none; b=iZB9qrsmRqUMa5aXeVnkGeOQ+5+NtOtZjRq9Az7eQDH/rQ4fCJ8SHbU12Xd4W8NcsOQgMPWNyaZRI7+FsbgrFV3ne3uqqbbOcDFR2HobQfLEUFohMjIXP8DE1e4FjyDsTXyUHUKtXxx31mzZnfUJ+UfzS5O1XNlZqIS4cuiYH2Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259716; c=relaxed/simple; bh=hSbqHz35q+6C147pTu9indautnQ/qPqTIIFrCoeW1ck=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=E6L4o9IxPvsYqwVMxkkVkScxUNC4fabgxhgPBKtNsFv2AqDDBfzmbegkH8a4UPW5QXFgaou/chzU7Ko8NDnVAnyXzD/czfMvviCheNlCx35a8lxXxrZ6w7nAW3SIJ5YLPZtWQXB9xohoNlIom8LfWU1wWBOD6XdMFDERZx9MGns= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=RqteYJpR; arc=none smtp.client-ip=209.85.215.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="RqteYJpR" Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-cb7d6ba548eso1167478a12.1 for ; Sun, 09 Aug 2026 00:15:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786259714; x=1786864514; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=HY1v4AGB3dNvnh/h3lWGdNn+nY0HzdSO+OIHYU03AEY=; b=RqteYJpR0qbKoR/WU7VcUOFKQvX1S/LsxC3wKgONnXsEEn0LOa83+voXSofir1SBOZ zhgNUmGllsRYf8xyl7Jx+hqoZIyNPHg55GuS6JgGsxUdg/tjBJvijSVWeV1rDdWFx9Nh HY+Qk58Fl1abdy0l7CyUVYEKf+VQB9ERFvenj4OVaolDO5KPpoDfthC9e1ICV2UaHSg7 fQadgJblZ33sSVceYr7nIkhWVNPDuSiwzM83tA1Xr/SlReLVYCn5fN6AjduGV6hHX3rj mI+3L116bvmJDoyNtWYPsHul8zWSgUiqNf+p6r7Ve0ojmFZNW8zHau9AM/9L7Cot7d8v UFrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786259714; x=1786864514; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=HY1v4AGB3dNvnh/h3lWGdNn+nY0HzdSO+OIHYU03AEY=; b=C5XQM1pgVHzN5cCPActC4/4N0UBSOMicYiKRpzvmToj55Y0dYzKOixLuS2Yh7CrUrE izdgQLWSy0PbF1ei3A5rEW0Bjz39geowZx/usD8OaBlFce9dnDTayPlcQWr+qUTYKKl7 S7DOUYaO9S5SknP/8dox+l6m8IdfqHoui5HfvqndVDEd9AGQurJjbkzbNZ6N9aXbHUoN FKguDjJAvqQgtaVo7i1jCLCkk+VMFeB4DMV2OBUBetL4kw+K+Br+ZYUOuL1ZkNcvdOSH dy4I47NnledywVAAsd9bBobLGSPBX4AAPWwQY9w/TWp9oRiJLb1OK/AZYkneDxmzNFDR 4S2w== X-Forwarded-Encrypted: i=1; AHgh+Rp8N+HRXH3e2dprHgT3lRyVJlsSP/EqwSabsgL01KDrwncnZ3p/znkftMPn6YCh8pi1aied84WD7k5MMm0=@vger.kernel.org X-Gm-Message-State: AOJu0Ywq4XdoqQlP91x/bXdlE11lt3xB171OYgY4sHIlVSkElV5/KHJh hn/GfnnOsx4AEZR6Oebjj5D7Q5kIu3hhc8iGQtZnn64eF4884I5ET9IMnGnXfHma2VgCJf12wNj MadkYAkAwvQ== X-Received: from dys5.prod.google.com ([2002:a05:693c:8005:b0:311:54ad:bcad]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:a114:b0:3c4:397a:69aa with SMTP id adf61e73a8af0-3cb85f4e1bbmr38240149637.31.1786259713975; Sun, 09 Aug 2026 00:15:13 -0700 (PDT) Date: Sun, 9 Aug 2026 00:14:45 -0700 In-Reply-To: <20260809071455.1221514-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260624051535.3584977-1-irogers@google.com> <20260809071455.1221514-1-irogers@google.com> X-Mailer: git-send-email 2.55.0.679.g6767b8d81c-goog Message-ID: <20260809071455.1221514-7-irogers@google.com> Subject: [PATCH v3 06/15] perf test: Fix skiplist leak in cmd_test From: Ian Rogers To: irogers@google.com, acme@kernel.org, namhyung@kernel.org Cc: adrian.hunter@intel.com, alice.mei.rogers@gmail.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, leo.yan@linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tmricht@linux.ibm.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Fix a memory leak in cmd_test() where skiplist was not freed on exit paths. Assisted-by: Antigravity:gemini-3.1-pro Fixes: 2ae828786c65 ("perf test: Allow skipping tests") Signed-off-by: Ian Rogers --- tools/perf/tests/builtin-test.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-tes= t.c index 41dcfbf874f0..4d0784b16723 100644 --- a/tools/perf/tests/builtin-test.c +++ b/tools/perf/tests/builtin-test.c @@ -1802,9 +1802,14 @@ int cmd_test(int argc, const char **argv) rlimit__bump_memlock(); =20 suites =3D build_suites(); - if (!suites) - return errno ? -errno : -ENOMEM; + if (!suites) { + int err =3D errno; + + intlist__delete(skiplist); + return err ? -err : -ENOMEM; + } ret =3D __cmd_test(suites, argc, argv, skiplist); free(suites); + intlist__delete(skiplist); return ret; } --=20 2.55.0.679.g6767b8d81c-goog From nobody Tue Sep 29 10:31:59 2026 Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7C4C3ABD91 for ; Sun, 9 Aug 2026 07:15:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.198 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259722; cv=none; b=Dms6dF8e5PehTFa9A0S4N8Lo8dkHPQn7NG2Yb3Q25ZWubW6vsEC6VI03Ta0EC8L7S3xc7lXxDy55Riud/puZt0v6SelnnqgfRQkwTOQArXIBav901YBEbV+un0YY/4gB+VI1YWfB25uD3bQ3x/taNEpzTVtZdb4jAeqhvzBNY3Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259722; c=relaxed/simple; bh=/S/53oJkDp5iKRz8rYm+z/UcbxOvb+U5L/9rZurOV5Q=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=H2WbwrM5Xe4+IZAlOogSqQIJ7jmdIuUkq7ApbQGrpZ1LNlfepT5X8Ixq0S0TfIVMUxpAJmkUFljzLDy+wzImPyfokosGtn4LdGBtnIQWVlHTdeQcwnLHkDIvABGLW6T3mktcVOXHwLkktZsSGWJyQ1tSoesHjgQ2mf8fs6ssOD0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=Mw6Xwg1C; arc=none smtp.client-ip=209.85.210.198 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="Mw6Xwg1C" Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-84eee2147ffso1362379b3a.0 for ; Sun, 09 Aug 2026 00:15:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786259717; x=1786864517; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=ZnAKzRhK/xXX0RZtcxB/zK8LsdPI/TmfxzA+YrwKiiY=; b=Mw6Xwg1ChlUpLn4L+YkM13lTrtnSV9Z1y7SpHN2uEPqtnkqfc+Qetz0ALlnbvN/HBR HVR2kGTmcrhQtmocE8Tq+TcSdS36J2RBLkkPnjdBXCdILjPlMAN165zdIVpFEj6rvz8S QAfez7zFhvL2kN19eS2dxm3YJAbKqshJRanHXXEhWQpuISA/XO/1nF6bzZQJKHc3YVkz kQN2l/PQOArF2lRDSSZBdYaBffVIm7+nlNzoi09vjapurI10PnT8yozPI0WfFJAJ1Qa/ oWZzfuHbnCzb8OoGHhmvvOEbR6VJFZZKJ0HWGs9xr5Dv0sn+H1zTzTegdtU0Pwhgoqk7 UK7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786259717; x=1786864517; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=ZnAKzRhK/xXX0RZtcxB/zK8LsdPI/TmfxzA+YrwKiiY=; b=fCKThO39EqZuMp0+dzuhnXJdTPsX2+QKUQhnp7ZEfuCo0WpNR9tMSJitu/wF8Nrir9 NQhnlKJCJh7SXGcD51zfrH53yiRKGpLNkr4MQvtyAF8XfX4r9LmII23B3owqtVxgSSRW 0ojrCofjKGhG2mSNKXJvbpCAK9gMsY5vN2gGHtZMx2v0/PsTe0yy/51rg9lTxq6fVaWE eTj9g3/yb+Dc5hE9pPAQFKmNHoT4wDcbbAxHT3E8pJH6lr+WE2EyHQ1qePqpNXGOQ1ux f+a4nh+ZZEz87o581d7HEIjqlIYRw+69FToxD5b77NoLMpD7pvCxMhZ1pB7S92TsQXo5 fEbw== X-Forwarded-Encrypted: i=1; AHgh+RrCfqEzXr51Ry8jjQBC/gDYwo4H8Kp8Smc0TChYvu1tAh1nISdE1dMT57a+QL4IvGOLNBP+Gc4VPlU0sbA=@vger.kernel.org X-Gm-Message-State: AOJu0YzFdEdJSuo4YSv44naUNJcgwSZZmIRLn+67+laHJORPY9qdj5v0 O/H1aCMoe0xLQUcfvp6YSPbuijbhyCXE9v/hhjEwSZju7UwEz3hmd5bv2cBKC9xZhgsjXMtuXpj ROyq+VBf1/Q== X-Received: from dli20-n1.prod.google.com ([2002:a05:7022:294:10b0:13b:97f1:acba]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:d52f:b0:3c3:9070:96b3 with SMTP id adf61e73a8af0-3cbce6caba0mr14267702637.3.1786259716640; Sun, 09 Aug 2026 00:15:16 -0700 (PDT) Date: Sun, 9 Aug 2026 00:14:46 -0700 In-Reply-To: <20260809071455.1221514-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260624051535.3584977-1-irogers@google.com> <20260809071455.1221514-1-irogers@google.com> X-Mailer: git-send-email 2.55.0.679.g6767b8d81c-goog Message-ID: <20260809071455.1221514-8-irogers@google.com> Subject: [PATCH v3 07/15] perf python: Check counts_values size in set_values From: Ian Rogers To: irogers@google.com, acme@kernel.org, namhyung@kernel.org Cc: adrian.hunter@intel.com, alice.mei.rogers@gmail.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, leo.yan@linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tmricht@linux.ibm.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The set_values function incorrectly assumed the list contained exactly 5 elements. Add a check to prevent out-of-bounds access. Fixes: 877108e42b1b ("perf tools: Initial python binding") Signed-off-by: Ian Rogers --- tools/perf/util/python.c | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index c7ae1f85aec6..f64d662bd3ee 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -1881,11 +1881,11 @@ static void pyrf_counts_values__delete(struct pyrf_= counts_values *pcounts_values 0, help } =20 static PyMemberDef pyrf_counts_values_members[] =3D { - counts_values_member_def(val, T_ULONG, "Value of event"), - counts_values_member_def(ena, T_ULONG, "Time for which enabled"), - counts_values_member_def(run, T_ULONG, "Time for which running"), - counts_values_member_def(id, T_ULONG, "Unique ID for an event"), - counts_values_member_def(lost, T_ULONG, "Num of lost samples"), + counts_values_member_def(val, T_ULONGLONG, "Value of event"), + counts_values_member_def(ena, T_ULONGLONG, "Time for which enabled"), + counts_values_member_def(run, T_ULONGLONG, "Time for which running"), + counts_values_member_def(id, T_ULONGLONG, "Unique ID for an event"), + counts_values_member_def(lost, T_ULONGLONG, "Num of lost samples"), { .name =3D NULL, }, }; =20 @@ -1895,8 +1895,15 @@ static PyObject *pyrf_counts_values_get_values(struc= t pyrf_counts_values *self, =20 if (!vals) return NULL; - for (int i =3D 0; i < 5; i++) - PyList_SetItem(vals, i, PyLong_FromLong(self->values.values[i])); + for (int i =3D 0; i < 5; i++) { + PyObject *val =3D PyLong_FromUnsignedLongLong(self->values.values[i]); + + if (!val) { + Py_DECREF(vals); + return NULL; + } + PyList_SetItem(vals, i, val); + } =20 return vals; } @@ -1907,19 +1914,34 @@ static int pyrf_counts_values_set_values(struct pyr= f_counts_values *self, PyObje Py_ssize_t size; PyObject *item =3D NULL; =20 + if (list =3D=3D NULL) { + PyErr_SetString(PyExc_TypeError, "cannot delete attribute"); + return -1; + } + if (!PyList_Check(list)) { PyErr_SetString(PyExc_TypeError, "Value assigned must be a list"); return -1; } =20 size =3D PyList_Size(list); + if (size !=3D 5) { + PyErr_SetString(PyExc_ValueError, "List must have exactly 5 entries"); + return -1; + } + for (Py_ssize_t i =3D 0; i < size; i++) { + unsigned long long val; + item =3D PyList_GetItem(list, i); if (!PyLong_Check(item)) { PyErr_SetString(PyExc_TypeError, "List members should be numbers"); return -1; } - self->values.values[i] =3D PyLong_AsLong(item); + val =3D PyLong_AsUnsignedLongLong(item); + if (val =3D=3D (unsigned long long)-1 && PyErr_Occurred()) + return -1; + self->values.values[i] =3D val; } =20 return 0; --=20 2.55.0.679.g6767b8d81c-goog From nobody Tue Sep 29 10:31:59 2026 Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 34B123A9852 for ; Sun, 9 Aug 2026 07:15:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.197 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259722; cv=none; b=Ai9OAXVU6HE43rori2E454e+ZWNXSkFtf6cwISe6NvlFOzK1m/auqZq6af1piOv4Cd/S2g8hAUqSfvV1LZoWU+w3KnfHUxmm7o05v8oFApDhYzJnUfQ4lHLQWdJ0VkkhM6hrhMADi1pmB9xdmbqkqdR0mG1KqJr3tF6SugAfns4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259722; c=relaxed/simple; bh=KnVz+ZQ4K53OzLPmC0m9B+YkQhU+ZZrrrYFWq9RuXVA=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=jly08jVzgulzspeu3J2CET3fiopw0EsOvOZyrGmYpeAzt8qTFdyOVcYPpnTRuX6Ycd/GBAkGbPnPlee0bGEO5whV5prcIm76In7Ndy6fC2ROH8gHEI1iDFqlASFWdDwl2VhHnTF8Pownd3DlZWR5VCSVuccJrBl2bemmJ7eNB/Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=d4o1LYEL; arc=none smtp.client-ip=209.85.210.197 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="d4o1LYEL" Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-84e04598adeso794808b3a.2 for ; Sun, 09 Aug 2026 00:15:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786259719; x=1786864519; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=MeV0ZSvBtVgD5Gp7MiruC3I46JSTwRM70B0672DhJlw=; b=d4o1LYELuFVEeovBVk5WJDntTAWWY9bbl2H6ZYCa15euaoS3ac3Q09k2hrRIKj/nfz fcDYpZ2jCTcvfQnOw304xnEHoHA00RI3Y1zXuCH+U2DqeD2iUHoB0nx00BnDAhPnVudX 5kYpbUneXupki5uC80Rhq8eYQFB5bK5txuZT4Vkr1J9F25mWNZpLv0ZAzmm9KTd/PQi9 ylo4j/2o2ebyhu34/RieyMO26Rrn5+5zfduIgXgWFVqR2NMUNfCkSG8Ku+2GdqABC1zQ 9rKclFMuLaWLtDjlFydML1kXCGxrhftP1/DXIibkK1lP33SFJMFNf4fJD0ycKmc7EV0L mVQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786259719; x=1786864519; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=MeV0ZSvBtVgD5Gp7MiruC3I46JSTwRM70B0672DhJlw=; b=rDszC1mywPhe/0NiAzPg9zSeEQbex3B/55Gps1NLsDKbJzMaHzlH9yhZKUKUtHVlQ3 CDnE3wTE7UoiHWEYio0Rx8+Ux4IKHxYtRGEHSKtTPC9vOUCqwf9XSYrGW96vg1fCE7s6 ZldKU2Ed0zX8ZvIxMqQToxvW4+qZ1DwuzPjv0ev1lmhgFx8T2W3jHH1N7LHr9xOvLoeS 4HyXCelDYicHpj2rpzsY73WHwwaYnG+El+jzMU6eCcNom8diFcNpr/VaWgM6SRqaX4y2 7owGvGbqt5J1o/a1mk9AKxcYsVVXk14UwgWu4T/RR5XpBsOqM2pOmBz31mZgzoL2SaSL Askw== X-Forwarded-Encrypted: i=1; AHgh+Ro23L/JngkS3DRMvn5e8kp345ARDrov9V75RVHMjztfZ7Qpq8QGdHwzZP/OsjRvRBHBEcwQZ8D/s0HMyLA=@vger.kernel.org X-Gm-Message-State: AOJu0YyZwJaC08vCkyBvvr6ndKpwd/Pv//jhLdhM7W73RTkIRQ8TEJ3y EBxpfuhOCtaZmV6OSRMKdSufFCHRNqWZWwls8M88s5QUsKi3ES1dRWCTLZS/c6mpO95hU6Je/KB qy1cKiriHiQ== X-Received: from dycmx4.prod.google.com ([2002:a05:693c:2884:b0:314:7337:26d9]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:9c15:b0:3b3:2703:110 with SMTP id adf61e73a8af0-3cbada680bfmr26775661637.4.1786259718604; Sun, 09 Aug 2026 00:15:18 -0700 (PDT) Date: Sun, 9 Aug 2026 00:14:47 -0700 In-Reply-To: <20260809071455.1221514-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260624051535.3584977-1-irogers@google.com> <20260809071455.1221514-1-irogers@google.com> X-Mailer: git-send-email 2.55.0.679.g6767b8d81c-goog Message-ID: <20260809071455.1221514-9-irogers@google.com> Subject: [PATCH v3 08/15] perf python: Validate CPU and thread maps in pyrf_evsel__open From: Ian Rogers To: irogers@google.com, acme@kernel.org, namhyung@kernel.org Cc: adrian.hunter@intel.com, alice.mei.rogers@gmail.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, leo.yan@linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tmricht@linux.ibm.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add explicit Py_TYPE checks to ensure the arguments passed are actually of the correct pyrf_thread_map and pyrf_cpu_map types. Fixes: 877108e42b1b ("perf tools: Initial python binding") Signed-off-by: Ian Rogers --- tools/perf/util/python.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index f64d662bd3ee..a1334400874c 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -2113,11 +2113,21 @@ static PyObject *pyrf_evsel__open(struct pyrf_evsel= *pevsel, &pcpus, &pthreads, &group, &inherit)) return NULL; =20 - if (pthreads !=3D NULL && pthreads !=3D Py_None) + if (pthreads !=3D NULL && pthreads !=3D Py_None) { + if (!PyObject_TypeCheck(pthreads, &pyrf_thread_map__type)) { + PyErr_SetString(PyExc_TypeError, "threads must be a thread_map"); + return NULL; + } threads =3D ((struct pyrf_thread_map *)pthreads)->threads; + } =20 - if (pcpus !=3D NULL && pcpus !=3D Py_None) + if (pcpus !=3D NULL && pcpus !=3D Py_None) { + if (!PyObject_TypeCheck(pcpus, &pyrf_cpu_map__type)) { + PyErr_SetString(PyExc_TypeError, "cpus must be a cpu_map"); + return NULL; + } cpus =3D ((struct pyrf_cpu_map *)pcpus)->cpus; + } =20 evsel->core.attr.inherit =3D inherit; /* --=20 2.55.0.679.g6767b8d81c-goog From nobody Tue Sep 29 10:31:59 2026 Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 34A7F3A8745 for ; Sun, 9 Aug 2026 07:15:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.200 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259722; cv=none; b=ZMNaV5wIoZeCipwx8D2t6vASvpMmjyLoZ3pZHPLYzDUsM2SYwazYCuZuxA+3XR2FqOVjn9ESVVnOyJD0aK4MoB+RcO995mT3ZHiCSmi7R6xR1Q+9FosOvpC3vSD27lrpqXN2qx/QUmi8IS/ZwVYPFxawbbuc+FiP2UYTeNads0c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259722; c=relaxed/simple; bh=RLnINDbMcL4E/Rax6DD7gPBreL6YMJqxWiTxmhgOXcE=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=DPf0Asr+LWYPM77sg4tm4tIuRItT3X3O/hodT3405Nd5+eTGcpnof2SHOBt6WlGu00h8JhjflhIXuObCdm1l3WVIh3alJYNdk+WBXUuIE0Qed2oqs4srsePdzBNaxzckoeYyvnJDoufSqaLwoNqx8whSk7nzGqcFC8TfVgYS2fI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=KbkFR5Bh; arc=none smtp.client-ip=209.85.215.200 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="KbkFR5Bh" Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-cb74d5db64eso1135406a12.2 for ; Sun, 09 Aug 2026 00:15:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786259720; x=1786864520; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=MQdI4gSEXiuWLEFvDKKxr4r15Yrm3sxZocQ22AwZ7TY=; b=KbkFR5BhEX7d/j1duf4zmmvICp816yKNXApDJ/7LhhEz5C7MikwWEgJE+YrTgfSc1r OrKAmWR6DYRn4dLX3Pc9LVqdy+EV8XnF0nXXFjAg1PagrLG81gTqW4a8dQLHUuYd6oH2 E47JFY8P6K0UlJUsaBdFkh0rU+0zevZN1IHOoEURnsUnZrcXODf1KWuMKzZNEjnFf5P/ PalG/XSRXrcsY0QJ1ML4aY0njRlmSxc9MRd4LAgqI0gQ2LhVsDeBxnEhLJE/a4els6nM VkBFNiVfUItusNv/bKvo/NIwbClNAbp4hPwhScGBeJe1ySvpf0n0Zd+bcCkgCzn6YnfA +23Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786259720; x=1786864520; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=MQdI4gSEXiuWLEFvDKKxr4r15Yrm3sxZocQ22AwZ7TY=; b=J+q3lJ3hABg7xWA/u0PEvybwdCuxLAmAfaDgqjRCEfDAO4Agmtf6j9Vn6Oi79XYg1f miDy1khetUviWtTc7jTzg6aTiPb84k27RuQz/Gfu7kGOHcvNsZ8C0IuA3LJEKJwJ8ncX Pze/bh+9V2Olto4UADZi5je3CShCh7VlkYOwCYAxM0vGdbJhB9LmMBRIzLKtWiISd2yl ER+bXu58itfzPK7VOq0ADgT5/S/fv4N+v4JkVc4BI9wwAICzEdNk7R4sjVmymstwJUGm 0mfdgZP+O0S9U84w/IrNwjftkTCwslzjfEH/8iR7ezkDdFAZFdpLy8u4V0yZDQ7dn9Mu 0LKw== X-Forwarded-Encrypted: i=1; AHgh+RpUFBtW6WmQWVThzSyvgEvdxJkQX/ribJlIQ4uXtuLP4jM2snpW0xjQ1G0qzarb5zcM+H/Dy30lIG7Esmw=@vger.kernel.org X-Gm-Message-State: AOJu0YwrSZSqDdrAsEWo4yO48R3OYdhVXhsp1wZIDVN4/9/szOLcRkRn T1BdW3OVh1RS32AIEHOQCGq7/ma5WF3pRRYhmgmQbv//Yo7l2x23TRobsKdvj5NfjaQ/XIuEbnu z4RG39JysEw== X-Received: from dly27-n1.prod.google.com ([2002:a05:701b:205b:10b0:139:c655:b2de]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:138e:b0:3bf:5539:f93 with SMTP id adf61e73a8af0-3cbcea37675mr13468273637.38.1786259720285; Sun, 09 Aug 2026 00:15:20 -0700 (PDT) Date: Sun, 9 Aug 2026 00:14:48 -0700 In-Reply-To: <20260809071455.1221514-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260624051535.3584977-1-irogers@google.com> <20260809071455.1221514-1-irogers@google.com> X-Mailer: git-send-email 2.55.0.679.g6767b8d81c-goog Message-ID: <20260809071455.1221514-10-irogers@google.com> Subject: [PATCH v3 09/15] perf python: Validate attribute setters in pyrf_evsel From: Ian Rogers To: irogers@google.com, acme@kernel.org, namhyung@kernel.org Cc: adrian.hunter@intel.com, alice.mei.rogers@gmail.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, leo.yan@linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tmricht@linux.ibm.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" If val is NULL when setting an attribute, PyErr_SetString should be called as deleting the attribute isn't supported. In addition, ensure PyErr_Occurred is checked before setting the attribute to avoid setting a garbage value. Fixes: 877108e42b1b ("perf tools: Initial python binding") Signed-off-by: Ian Rogers --- tools/perf/util/python.c | 89 ++++++++++++++++++++++++++++++++++------ 1 file changed, 77 insertions(+), 12 deletions(-) diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index a1334400874c..848912401c4f 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -2301,6 +2301,11 @@ static int pyrf_evsel__set_tracking(PyObject *self, = PyObject *val, void *closure =20 CHECK_INITIALIZED_INT(pevsel->evsel, "evsel"); =20 + if (val =3D=3D NULL) { + PyErr_SetString(PyExc_TypeError, "cannot delete attribute"); + return -1; + } + is_true =3D PyObject_IsTrue(val); if (is_true < 0) return -1; @@ -2312,11 +2317,21 @@ static int pyrf_evsel__set_tracking(PyObject *self,= PyObject *val, void *closure static int pyrf_evsel__set_attr_config(PyObject *self, PyObject *val, void= *closure __maybe_unused) { struct pyrf_evsel *pevsel =3D (void *)self; + unsigned long long new_val; =20 CHECK_INITIALIZED_INT(pevsel->evsel, "evsel"); =20 - pevsel->evsel->core.attr.config =3D PyLong_AsUnsignedLongLong(val); - return PyErr_Occurred() ? -1 : 0; + if (val =3D=3D NULL) { + PyErr_SetString(PyExc_TypeError, "cannot delete attribute"); + return -1; + } + + new_val =3D PyLong_AsUnsignedLongLong(val); + if (PyErr_Occurred()) + return -1; + + pevsel->evsel->core.attr.config =3D new_val; + return 0; } =20 static PyObject *pyrf_evsel__get_attr_config(PyObject *self, void *closure= __maybe_unused) @@ -2331,11 +2346,21 @@ static PyObject *pyrf_evsel__get_attr_config(PyObje= ct *self, void *closure __may static int pyrf_evsel__set_attr_read_format(PyObject *self, PyObject *val,= void *closure __maybe_unused) { struct pyrf_evsel *pevsel =3D (void *)self; + unsigned long long new_val; =20 CHECK_INITIALIZED_INT(pevsel->evsel, "evsel"); =20 - pevsel->evsel->core.attr.read_format =3D PyLong_AsUnsignedLongLong(val); - return PyErr_Occurred() ? -1 : 0; + if (val =3D=3D NULL) { + PyErr_SetString(PyExc_TypeError, "cannot delete attribute"); + return -1; + } + + new_val =3D PyLong_AsUnsignedLongLong(val); + if (PyErr_Occurred()) + return -1; + + pevsel->evsel->core.attr.read_format =3D new_val; + return 0; } =20 static PyObject *pyrf_evsel__get_attr_read_format(PyObject *self, void *cl= osure __maybe_unused) @@ -2350,11 +2375,21 @@ static PyObject *pyrf_evsel__get_attr_read_format(P= yObject *self, void *closure static int pyrf_evsel__set_attr_sample_period(PyObject *self, PyObject *va= l, void *closure __maybe_unused) { struct pyrf_evsel *pevsel =3D (void *)self; + unsigned long long new_val; =20 CHECK_INITIALIZED_INT(pevsel->evsel, "evsel"); =20 - pevsel->evsel->core.attr.sample_period =3D PyLong_AsUnsignedLongLong(val); - return PyErr_Occurred() ? -1 : 0; + if (val =3D=3D NULL) { + PyErr_SetString(PyExc_TypeError, "cannot delete attribute"); + return -1; + } + + new_val =3D PyLong_AsUnsignedLongLong(val); + if (PyErr_Occurred()) + return -1; + + pevsel->evsel->core.attr.sample_period =3D new_val; + return 0; } =20 static PyObject *pyrf_evsel__get_attr_sample_period(PyObject *self, void *= closure __maybe_unused) @@ -2369,11 +2404,21 @@ static PyObject *pyrf_evsel__get_attr_sample_period= (PyObject *self, void *closur static int pyrf_evsel__set_attr_sample_type(PyObject *self, PyObject *val,= void *closure __maybe_unused) { struct pyrf_evsel *pevsel =3D (void *)self; + unsigned long long new_val; =20 CHECK_INITIALIZED_INT(pevsel->evsel, "evsel"); =20 - pevsel->evsel->core.attr.sample_type =3D PyLong_AsUnsignedLongLong(val); - return PyErr_Occurred() ? -1 : 0; + if (val =3D=3D NULL) { + PyErr_SetString(PyExc_TypeError, "cannot delete attribute"); + return -1; + } + + new_val =3D PyLong_AsUnsignedLongLong(val); + if (PyErr_Occurred()) + return -1; + + pevsel->evsel->core.attr.sample_type =3D new_val; + return 0; } =20 static PyObject *pyrf_evsel__get_attr_sample_type(PyObject *self, void *cl= osure __maybe_unused) @@ -2397,11 +2442,21 @@ static PyObject *pyrf_evsel__get_attr_size(PyObject= *self, void *closure __maybe static int pyrf_evsel__set_attr_type(PyObject *self, PyObject *val, void *= closure __maybe_unused) { struct pyrf_evsel *pevsel =3D (void *)self; + unsigned long new_val; =20 CHECK_INITIALIZED_INT(pevsel->evsel, "evsel"); =20 - pevsel->evsel->core.attr.type =3D PyLong_AsUnsignedLong(val); - return PyErr_Occurred() ? -1 : 0; + if (val =3D=3D NULL) { + PyErr_SetString(PyExc_TypeError, "cannot delete attribute"); + return -1; + } + + new_val =3D PyLong_AsUnsignedLong(val); + if (PyErr_Occurred()) + return -1; + + pevsel->evsel->core.attr.type =3D new_val; + return 0; } =20 static PyObject *pyrf_evsel__get_attr_type(PyObject *self, void *closure _= _maybe_unused) @@ -2416,11 +2471,21 @@ static PyObject *pyrf_evsel__get_attr_type(PyObject= *self, void *closure __maybe static int pyrf_evsel__set_attr_wakeup_events(PyObject *self, PyObject *va= l, void *closure __maybe_unused) { struct pyrf_evsel *pevsel =3D (void *)self; + unsigned long new_val; =20 CHECK_INITIALIZED_INT(pevsel->evsel, "evsel"); =20 - pevsel->evsel->core.attr.wakeup_events =3D PyLong_AsUnsignedLong(val); - return PyErr_Occurred() ? -1 : 0; + if (val =3D=3D NULL) { + PyErr_SetString(PyExc_TypeError, "cannot delete attribute"); + return -1; + } + + new_val =3D PyLong_AsUnsignedLong(val); + if (PyErr_Occurred()) + return -1; + + pevsel->evsel->core.attr.wakeup_events =3D new_val; + return 0; } =20 static PyObject *pyrf_evsel__get_attr_wakeup_events(PyObject *self, void *= closure __maybe_unused) --=20 2.55.0.679.g6767b8d81c-goog From nobody Tue Sep 29 10:31:59 2026 Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 332233AAF72 for ; Sun, 9 Aug 2026 07:15:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.72 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259728; cv=none; b=cMzj6I2GYjqK3gDkU5gT2rZWen6jSkxRA0N2YYmypTwsD+z5R7f6sGVq0fDqpUfkWwnnM02nJYqSs9Yfnpj2YwzNm9MTN+FBrNIbEOjNWuuKGOHCCKBSdzxC8WgMmneIq0mfIXvtnLr+RduDdIUrUf8nZaMuvyO65LLA7eEYYvY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259728; c=relaxed/simple; bh=8HU33RKfiVs/du4nYMpaPSdKEfzU2ZUkgOw7ye5QfTI=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=NAQGro17K04lPx/iWVX20Kn8S30n9pQ509GLNrI3MnD2b9M7XUHbrY0K2ZrZe5N5u/uR9dkhM2zW2VjQg39wWJoJT0H4Ru4Xheu/P6vAP4dW4qh7leNSqCRL/UUJFghIbhR4zXhJX5z512bJS7OTjT446xqicS13Xvfbm0/QNCk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=UPvGmydc; arc=none smtp.client-ip=209.85.216.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="UPvGmydc" Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-38e22137fb3so1499499a91.0 for ; Sun, 09 Aug 2026 00:15:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786259722; x=1786864522; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=foLiohl07cPKDmG5J/n9MrGxXXJ6d32JUXR7ooRzHEE=; b=UPvGmydcNI/f5h89hb3RxFJZkfu0QG2b/wjOfaSoyLew2+xJ5FuK68SykhaXhvfM/C m/JTKO8jZmIH9hSXZgB7tVTSvC7N+136KWi66gPXgv1563WB42eJsbZWS0TNROpsU2Ho +JjZmgc5nBzMJ7KLUozNaDsOOQMdiD3T0L9HNGsWUCgb2+ZE5r0RXBrB/Oe1BeVNJi3P 38AgU46vAD6FVZRSZLMwV1dXTMpiSQ+ZaeSWTQmaggG0fpfLGGPc2/AIZF4eVDVpnSjI aMHgdEdunUOpW2MmhDUv85UluUQDw+q4WkOd2F7w3zFQmX/KFqDW+hqhSm/hPYcbsX/f H8Og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786259722; x=1786864522; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=foLiohl07cPKDmG5J/n9MrGxXXJ6d32JUXR7ooRzHEE=; b=BdTySWQQ3wzcqH1iD5LOSaT98wgC01BppjcClNEAwb2hVitDWKhFmvHL+6K6SH584Q GvTh0TLR0sy69kH+Qdu2rQlVue50yNqxqSP05OTLSjH45NGiZ7AcW0glRLoW/glFDxp5 F6wSc15TbCxG9BrPLB49ktNO8CL4szt1cPdLb0q7ic6+vQ0GouK7C2v8uNqq+p91rO9H H6YJTvPx/O0t+W8mScUPbaBPlSf48JnL1atG6FnrZ6WHFpaZ8TDTzUrN5iuk2HvMKA0b EFHQRvwofrSC18qtA3DyiibQQZ6AVUPeQFU0kO2j6NNI2eB9URf6QN9m3VGCsP8Gx5n2 Wzzg== X-Forwarded-Encrypted: i=1; AHgh+RofqMwsAR5NGzkmLJmQxS9oKxgfZmeX584Qnl/hsKIlD8RXZr0szhni2ROTYvX+ogzPOovNZ7Fh2ytsyAQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yw2jZ80h3lJxzMi7VHIS7KxJb8vvCrtErNSOrheQf6L5qNQDbXl 4DLIEDlAlmYTCpf+z/Ng4QEPpzBkXgcQnfdctky9zpJMW/vi/71BBdth7trlD57pwGq/OW5ozPG uJmlfwlI7xA== X-Received: from dldyr5-n2.prod.google.com ([2002:a05:701b:4505:20b0:13b:8a4e:e3b6]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:288b:b0:38e:8300:af51 with SMTP id 98e67ed59e1d1-3903c54d040mr37091686a91.8.1786259722249; Sun, 09 Aug 2026 00:15:22 -0700 (PDT) Date: Sun, 9 Aug 2026 00:14:49 -0700 In-Reply-To: <20260809071455.1221514-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260624051535.3584977-1-irogers@google.com> <20260809071455.1221514-1-irogers@google.com> X-Mailer: git-send-email 2.55.0.679.g6767b8d81c-goog Message-ID: <20260809071455.1221514-11-irogers@google.com> Subject: [PATCH v3 10/15] perf python: Zero initialize perf_data in pyrf_data__init From: Ian Rogers To: irogers@google.com, acme@kernel.org, namhyung@kernel.org Cc: adrian.hunter@intel.com, alice.mei.rogers@gmail.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, leo.yan@linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tmricht@linux.ibm.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace path clearing with memset so the entire struct is zeroed, preventing uninitialized fields from causing errors later. Fixes: 4cd0142f7dec ("perf python: Add wrapper for perf_data file abstracti= on") Signed-off-by: Ian Rogers --- tools/perf/util/python.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index 848912401c4f..c70b151428f7 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -3,6 +3,7 @@ #include =20 #include +#include =20 #include #include @@ -3627,7 +3628,7 @@ static int pyrf_data__init(struct pyrf_data *pdata, P= yObject *args, PyObject *kw if (pdata->data.open) perf_data__close(&pdata->data); free((char *)pdata->data.path); - pdata->data.path =3D NULL; + memset(&pdata->data, 0, sizeof(pdata->data)); =20 if (fd !=3D -1) { struct stat st; --=20 2.55.0.679.g6767b8d81c-goog From nobody Tue Sep 29 10:31:59 2026 Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C7CC334DCD6 for ; Sun, 9 Aug 2026 07:15:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.69 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259729; cv=none; b=VAO1wQzmzku9saPpMr8LkH0CFkxjWWJc1ZGbZPrUJpzKhUo0w2y6NRkXQ3xZwUwpIDl7OsUTV2iYA2UmWWnEPLlbxEUERZRynZV8QyNWaipIl7govAo5GCrnMKMxGVQaB79mt3Dfh9Io7NC2Olf3QGjHfhkwpyMsFPIRYiar38o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259729; c=relaxed/simple; bh=jQARfxlrhw5Edr99xK8KqJ/X0zZW/9CLynsfZ/iahLQ=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=pDyGAbqGZA4vQzKcxNLsobeCb6IOOnsb9ryAuhNJINQoEvaau/MJrJb84txU8QM1kvNJJZ+d35Yyk560sMsRuYl5TAXcIBTl0A2XzvbOvAkczz/IGbpvamjEpw69q/qTyvHluAyC1QrZYx+OmuT54N2s1cyGGZsQWkXUoAbe8ks= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=k4nI8T52; arc=none smtp.client-ip=209.85.216.69 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="k4nI8T52" Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-38827cee19eso1345605a91.3 for ; Sun, 09 Aug 2026 00:15:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786259724; x=1786864524; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=bqhTaOZx4oYiIKO7FVaVB+owHoEMVUNoR+tChJIAFMM=; b=k4nI8T52AL/p/eoI1L1ZZZ9raO3lkZZ151+RLyp2v2roeoBpeDpofBkmjeHcgyXMbQ cIEYPtjtDbok0NKZZt0sw8Zp/5Z82zd89JR5mX8y2jmfgxksZPnx3WLkNUNpJTU9UtUw u5IOSav9/lOc9d1oY1OGeuLklQSC38Ibf2WZfy7guq6A5c3k7c4idxir1n/Q+3qww59T BhvJrpjyMfn2fSywFaf+6f1V9ENcXUDPDAFcGOktqE8iizkKvVRtyd37b8i6AiAEJ+1P TkZ/I7khM+LcNedAP2+29AeyIFS557KMG37uSOzvMjhn4hjWQXugQJLaXWD3ikQVoO1M FAxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786259724; x=1786864524; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=bqhTaOZx4oYiIKO7FVaVB+owHoEMVUNoR+tChJIAFMM=; b=qJXuO+xK7xDpGt4RR4ThwAbMZE1XcLkgaP77DgN0AGNkXwkrhRqsf27ZQ9hYdAfJ0+ MF60j9ghePKWsON+h24WJsxVXC7BtWFQpghi76YwAHhqrJ5EjPBWVERmZriNwWLWw2N0 6xl+5mRp0MwyFHZMcRqGOkjKa7fBPzbsXuJuAjD0f7pbYpPiWZMj2RW4VUojgTk1ow1X F4UI+igIivVNAvZ4T+tG9chJSM9AJq8wf2egLUDCkIPC/XpAT2R/mRJCl7wVOyuLGQnW oYXTH9E9EnBnfJOYHXQzU4k+/E4Mry2Ftb7p9NamJBImK7KRnLeg6x5BxL13NfIAIhPT QLtQ== X-Forwarded-Encrypted: i=1; AHgh+RqMV3vSpNIXlxxlNcxLQ2kRnuox1i8q8Fkue/ul1fdAwUI314hHRMONpoTMj6ZI7QEk4PeN235vj3oPlA4=@vger.kernel.org X-Gm-Message-State: AOJu0Yx/+uCKbJIf4SwUNS4Nz7VNgsWdtBdAcXxkj2bpxjgdjvOSIJSU g7rfDM7XBkVyYEAlA2pR6BdHQ9zw+K8hwC7ljqU9RouN5coqZpsBgmsxKPTVFruQXKO4C7dAgHc FNtTRWFDqvw== X-Received: from dldz6-n2.prod.google.com ([2002:a05:701b:4186:20b0:140:f3bd:b2fa]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:578e:b0:383:5a16:bd70 with SMTP id 98e67ed59e1d1-3903c5ebc8cmr36529406a91.16.1786259724100; Sun, 09 Aug 2026 00:15:24 -0700 (PDT) Date: Sun, 9 Aug 2026 00:14:50 -0700 In-Reply-To: <20260809071455.1221514-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260624051535.3584977-1-irogers@google.com> <20260809071455.1221514-1-irogers@google.com> X-Mailer: git-send-email 2.55.0.679.g6767b8d81c-goog Message-ID: <20260809071455.1221514-12-irogers@google.com> Subject: [PATCH v3 11/15] perf python: Add thread and PMU uninitialized checks From: Ian Rogers To: irogers@google.com, acme@kernel.org, namhyung@kernel.org Cc: adrian.hunter@intel.com, alice.mei.rogers@gmail.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, leo.yan@linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tmricht@linux.ibm.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add CHECK_INITIALIZED checks to the thread attribute getters (get_pid, get_tid, get_ppid) to prevent crashes if they are accessed before being properly initialized. Fixes: 3b96bf7af60d ("perf python: Add python session abstraction wrapping = perf's session") Signed-off-by: Ian Rogers --- tools/perf/util/python.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index c70b151428f7..fe5afce17333 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -1678,6 +1678,7 @@ static PyObject *pyrf_pmu__name(PyObject *self) { struct pyrf_pmu *ppmu =3D (void *)self; =20 + CHECK_INITIALIZED(ppmu->pmu, "pmu"); return PyUnicode_FromString(ppmu->pmu->name); } =20 @@ -1730,6 +1731,8 @@ static PyObject *pyrf_pmu__events(PyObject *self) PyObject *py_list =3D PyList_New(0); int ret; =20 + CHECK_INITIALIZED(ppmu->pmu, "pmu"); + if (!py_list) return NULL; =20 @@ -1750,6 +1753,7 @@ static PyObject *pyrf_pmu__repr(PyObject *self) { struct pyrf_pmu *ppmu =3D (void *)self; =20 + CHECK_INITIALIZED(ppmu->pmu, "pmu"); return PyUnicode_FromFormat("pmu(%s)", ppmu->pmu->name); } =20 @@ -3764,21 +3768,25 @@ static PyMethodDef pyrf_thread__methods[] =3D { =20 static PyObject *pyrf_thread__get_pid(struct pyrf_thread *pthread, void *c= losure __maybe_unused) { + CHECK_INITIALIZED(pthread->thread, "thread"); return PyLong_FromLong(thread__pid(pthread->thread)); } =20 static PyObject *pyrf_thread__get_tid(struct pyrf_thread *pthread, void *c= losure __maybe_unused) { + CHECK_INITIALIZED(pthread->thread, "thread"); return PyLong_FromLong(thread__tid(pthread->thread)); } =20 static PyObject *pyrf_thread__get_ppid(struct pyrf_thread *pthread, void *= closure __maybe_unused) { + CHECK_INITIALIZED(pthread->thread, "thread"); return PyLong_FromLong(thread__ppid(pthread->thread)); } =20 static PyObject *pyrf_thread__get_cpu(struct pyrf_thread *pthread, void *c= losure __maybe_unused) { + CHECK_INITIALIZED(pthread->thread, "thread"); return PyLong_FromLong(thread__cpu(pthread->thread)); } =20 --=20 2.55.0.679.g6767b8d81c-goog From nobody Tue Sep 29 10:31:59 2026 Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 160BC3A7F41 for ; Sun, 9 Aug 2026 07:15:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.72 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259728; cv=none; b=Vo43u8+/PcnvCnn0x00Sk3ggFFwjFbYscbeA+7Dk+4WTeFQUOtEWstXpfeQNy9loTUW7SrQgxEW5vytAnoG04lxDt0mU/G0hD6l/334WXsAwMisvgp9FcOAYnc2BRSy3bJltGKusbjwmYS9Hs9/NIXUX/dwQ3NV7nc6ncUxhnMI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259728; c=relaxed/simple; bh=eTLTXsX4mUdMPUwdgUu6LgfscRKIwjPgzHjKLdinpgM=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=Ob6yD9xBC65bW/wTiFY0iCQMa0hbEVbQanwVdfJtQ79O0ay2l/+B1KVjveyjspVfdTDoI6nB2wxyrM2FVDDtVf3fe/CXyKNGUBGjLdZyzC7b9vfPqYhCStZsxMl4KlvQtlkXAvnxwZuUevt1j9NcxnEockAMGj/DAknCeqWlpG8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=nMYBcb2E; arc=none smtp.client-ip=209.85.216.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="nMYBcb2E" Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-388b404eaa4so567027a91.0 for ; Sun, 09 Aug 2026 00:15:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786259726; x=1786864526; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=44myQ460KI1I5jV+5Jt00SfBl1/EBm8ZDskp8s1X+nc=; b=nMYBcb2EGHHl3PXJK6INVLfUG1aFIkOJdJ1sw0+NHrm5K7zOhEOk+MkCVH0k7HHB2k p0OKzfv/cUQw5mQAVrS2vlL7hpvfW/ilZ3pn8qBqDOknGuH+1yrDKTp8a/G0DsnciAlh 7Y7KX3xjrS7VMBIzFdRWbzW5s6rNV8JCmjc+iybUGlkOJ4L6+7YFJv4fzvLN72Lvo7Jn gyLl97Th4QimdKp/onXPERPJJuOcUMIwdA9A23oaAJ3P4UjvZApyuB8JC2iTbUT4ZA/L ClHE5YFoge1m/dESHHa6EcvFTxmgnEiuqFdDaliXTSMRq+T4BOy/X/iHWPTbtA1y0G4b kAYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786259726; x=1786864526; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=44myQ460KI1I5jV+5Jt00SfBl1/EBm8ZDskp8s1X+nc=; b=hrohqEGxopF+HJOJSbNnesVDG5TGTXrHXkJQn7Y18u1crm+AouV4kOoBST+8mEnf/2 Bke0ymVXg0Yqd83CpmDjqbhB346rU9QAZFh59dY751NK2oSTo07dbwXZQ1p5gW7KVtsv rUbXdBBCO5h8F5GSXJF8pMULWKiW3GdOEYRiBptaCcLPwNed5X47+UJyfRVEK2be2k94 h2YKpSNGwVgkPX2WPHWx38zKmn6jM7cd5gHdZBquDsrmmoYUCn/o8EDv24wktV84QmvF Uzd5Rsb4v5Ke9UtsbWUDqs8P38SsNX0sL+RG0q9sRXOucHzlatBhX43w/db3x+fnTvT/ lQGw== X-Forwarded-Encrypted: i=1; AHgh+Ro2wwGYDB0SWF4qvsknK/4JUuZHSoVZh8nsNyqvr4U1g5pHomEN4qlG/PA4D3//yUBe0fnAFSdm1RTgPU0=@vger.kernel.org X-Gm-Message-State: AOJu0YxDpWfVipogDzhXbyWRZeS0xMLUef93ju3j+ljbtBWpEzCEkMoK C/mmZiiNTThl/Vv3RkeTLrfMBAtvC7spSq7KKys0u55c+5KXXgNVxiTycBpLCayBQOf5FRs3DzX Krcgk77K2ag== X-Received: from dlbep6.prod.google.com ([2002:a05:7022:1086:b0:13d:2ef5:67be]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:2745:b0:381:3b5d:30f4 with SMTP id 98e67ed59e1d1-3903c535d84mr37292057a91.1.1786259726030; Sun, 09 Aug 2026 00:15:26 -0700 (PDT) Date: Sun, 9 Aug 2026 00:14:51 -0700 In-Reply-To: <20260809071455.1221514-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260624051535.3584977-1-irogers@google.com> <20260809071455.1221514-1-irogers@google.com> X-Mailer: git-send-email 2.55.0.679.g6767b8d81c-goog Message-ID: <20260809071455.1221514-13-irogers@google.com> Subject: [PATCH v3 12/15] perf python: Fix MetricGroup return type in perf.pyi From: Ian Rogers To: irogers@google.com, acme@kernel.org, namhyung@kernel.org Cc: adrian.hunter@intel.com, alice.mei.rogers@gmail.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, leo.yan@linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tmricht@linux.ibm.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The metrics() function can return a dictionary where the value is either a string or a list of strings, so the type signature in the stub file should be Union[str, List[str]]. Fixes: 430da3cd03b4 ("perf python: Add perf.pyi stubs file") Signed-off-by: Ian Rogers --- tools/perf/python/perf.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/perf/python/perf.pyi b/tools/perf/python/perf.pyi index f266c9baffd0..58b0b3ed819d 100644 --- a/tools/perf/python/perf.pyi +++ b/tools/perf/python/perf.pyi @@ -1,5 +1,5 @@ """Type stubs for the perf Python module.""" -from typing import Callable, Dict, List, Optional, Any, Iterator +from typing import Callable, Dict, List, Optional, Any, Iterator, Union =20 def config_get(name: str) -> Optional[str]: """Get a configuration value from perf config. @@ -12,7 +12,7 @@ def config_get(name: str) -> Optional[str]: """ ... =20 -def metrics() -> List[Dict[str, str]]: +def metrics() -> List[Dict[str, Union[str, List[str]]]]: """Get a list of available metrics. =20 Returns: --=20 2.55.0.679.g6767b8d81c-goog From nobody Tue Sep 29 10:31:59 2026 Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D11B12BE63F for ; Sun, 9 Aug 2026 07:15:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.197 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259732; cv=none; b=kf1HZ+iM1WZv9OECBb13Ed0wCQJQUEgPkM25zg3B83hHlcjhBa5aL9PNJ8O29hji3Jwlgig6gLxxEoqvAs1DV7iASQmO8lTlcONazu5SkgAH0AzpCYCffZG3nE0zj38QDPXegLR1VoHNUf39hSNlh5/URPSfD//S5VjXz47gEOw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259732; c=relaxed/simple; bh=8sCG0f5IGimuJ+fsQUifv2/QjLt5UBT/0kf9dJVm/O4=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=q82uf1gvfy/l1xjf2cNy7SL8oM6cP3JckGVdE+BvyJwN6f2Smh+XfFBfa2HR1hC/UT0aApZFQbRKzzv1eFFyLU9L6UP8HD+YplgSTHLva4WOQ9v6gDlXLP8KZHRu8/MBoUSEV7PXcYkB0D/r+EcPOmFSWjVch2CuPLhf732Ydbo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=cVN6oE1l; arc=none smtp.client-ip=209.85.215.197 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="cVN6oE1l" Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-c89704da8c7so1480610a12.0 for ; Sun, 09 Aug 2026 00:15:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786259728; x=1786864528; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=guXh3nj4hXqwhdHJMCtl6P47kx2KJmAnA1aawSbLzyY=; b=cVN6oE1lbFOqwbrhrjn+B0zXUw/99ZJlAj0zGEoou/0OWomyS+/JCD51EC9idMiEbl qq/lTwR7lhl8+WhfhPyQxg4RGrWF1ADQTmFhRVLdWhG71Ubqg6UEGOlyX0LDM12n14L7 nxG7qJJD2eYt9b+gBMgH5eB9vtD18Vo2y7/FilOF/De6f2a1FtOjT/PSas0iCqGmDBod A+IdyuRCteudpFdhsXZ/5OSIKwIG4GzE/Rq+1guXRG6t0pqjwYJPNpLiJUw076j0Rd76 eIE92uSCjTwiA+Lp6dPWFMMQCtFN3YseEWTZLAenlqXHp8G+j4FIi1sSBb/91zXZRzAF /Lng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786259728; x=1786864528; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=guXh3nj4hXqwhdHJMCtl6P47kx2KJmAnA1aawSbLzyY=; b=RUZH78eIT1S8oMx0VVwJEYCux8Z0Gz82omve4JnbHgANq2FIzUy5pcNxJrWKcRs74T p9QEGHhSum+HZ5tBSFhdz7j3aqDMGCTME2uzHYoO/2Fy8XnJ6wiAIjfb9hEc8uvUehcJ lEAKBH5LeKWMKWrtGtIz/OG+KeHGRQ45o2eBzx1Kzm6vut9UQFJzl8tjrdwbeIkJwXQq RURJZyCef/FzFM4ciqxLZcwrHc7pssz4tWRK558wFbJMwj++9UcY+zM0iFBP4n/zWjiF +IMzo8SEj8fklzr8Csn43YNxSCmatKxs3chvvJFwfTEK99xbwbp+tundqMMZt8Ni/z0P p+eg== X-Forwarded-Encrypted: i=1; AHgh+RqM4FVo3vyaeoHVDEEhzy9j+RlBIBanCAeiI3tE/KD5A5dkk7SFpHMtkOZO4Q2HdXgFEQGSR5wev4MfsT4=@vger.kernel.org X-Gm-Message-State: AOJu0YzWgp4EETYFcA8Cn4Zod9h6evZh7Xlgt1GM5B6m34LSXbv47sUU JIN5f3E81ENZjjAJSnIpz31oRg18PlKLnDIYGq8HurVk8Evq0Z5nVu0mSdqKS3tT8g8Yrtx5Q+7 vPkCBVhmzmg== X-Received: from dlbtp10.prod.google.com ([2002:a05:7022:3b8a:b0:141:729:41df]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:e352:b0:3cb:b3fc:510f with SMTP id adf61e73a8af0-3cbb3fc5a0cmr17277123637.24.1786259727722; Sun, 09 Aug 2026 00:15:27 -0700 (PDT) Date: Sun, 9 Aug 2026 00:14:52 -0700 In-Reply-To: <20260809071455.1221514-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260624051535.3584977-1-irogers@google.com> <20260809071455.1221514-1-irogers@google.com> X-Mailer: git-send-email 2.55.0.679.g6767b8d81c-goog Message-ID: <20260809071455.1221514-14-irogers@google.com> Subject: [PATCH v3 13/15] perf python: Fix count_values memory leak in pyrf_evsel__read From: Ian Rogers To: irogers@google.com, acme@kernel.org, namhyung@kernel.org Cc: adrian.hunter@intel.com, alice.mei.rogers@gmail.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, leo.yan@linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tmricht@linux.ibm.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In pyrf_evsel__read, if PyArg_ParseTuple fails, the allocated count_values is leaked. Move the allocation of count_values after the PyArg_ParseTuple call to prevent the memory leak. Fixes: 739621f65702 ("perf python: Add evsel read method") Signed-off-by: Ian Rogers --- tools/perf/util/python.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index fe5afce17333..71431c9c2e76 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -2210,11 +2210,6 @@ static PyObject *pyrf_evsel__read(struct pyrf_evsel = *pevsel, =20 CHECK_INITIALIZED(evsel, "evsel"); =20 - count_values =3D PyObject_New(struct pyrf_counts_values, - &pyrf_counts_values__type); - if (!count_values) - return NULL; - if (!PyArg_ParseTuple(args, "ii", &cpu, &thread)) return NULL; =20 @@ -2233,6 +2228,10 @@ static PyObject *pyrf_evsel__read(struct pyrf_evsel = *pevsel, if (evsel__ensure_counts(evsel)) return PyErr_NoMemory(); =20 + count_values =3D PyObject_New(struct pyrf_counts_values, &pyrf_counts_val= ues__type); + if (!count_values) + return NULL; + /* Set up pointers to the old and newly read counter values. */ old_count =3D perf_counts(evsel->prev_raw_counts, cpu_idx, thread_idx); new_count =3D perf_counts(evsel->counts, cpu_idx, thread_idx); --=20 2.55.0.679.g6767b8d81c-goog From nobody Tue Sep 29 10:31:59 2026 Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 382FE3ACA68 for ; Sun, 9 Aug 2026 07:15:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.70 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259731; cv=none; b=QvN5n6rmK1sF/47SMrGRNh9qQiswn7KzrKcUVDLraEaKDt5LFQRN1cku9tpGThim3BPFD0Zo+CTFy8f/yVsmaqDEZAEhWkCknVjWs6xM+V/hrIfIuaWBfpCi41gm8fmaLPRkWMeUfcGAq6HUiz++oxuaniBTRNLZk6VYALmM3o8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259731; c=relaxed/simple; bh=DtSsifjwWVyJ1/n4M/V9Rng/YX6VJnOi365fPzujeYM=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=bC4zVNOHylwtgN3WW0qZzv9VH1Iay3P2bLSx6RRwXjfxVGraaa03qR8MGmFSaimFImYPFUknWLnFEtxMShWgi86dfVjadidN9fbZ2yyHY7NNe3lFfMzPMJRN8qsrD6gh5ogIrMEn4ZMarB13ePr6td9GMhnzWQbo193KtuHEleQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=lyW1mD1s; arc=none smtp.client-ip=209.85.216.70 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="lyW1mD1s" Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-38fcaa5f82cso864082a91.3 for ; Sun, 09 Aug 2026 00:15:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786259729; x=1786864529; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=OmNU6KqTmzL/zIuJqf0Vz5N9nW2alEymL/EvtGqx9YY=; b=lyW1mD1suaxp+ghVWhL4nW0hAW+kX3Av5WKEhxbQILKgNXEjdpKJkggoTlgWy0Eilf oJMbV5lGJHNYJaYdY/bqimqFmKUdIgqCbvpdyxer3IzyNYZ2SonsA9Fitw3tbR+1b5aI aXW/5d+aA2mA+IeScxWZhD270ZEsmDkclGgBXEWNsgXK8o3B6ASsG0s70IpL3jc7VySB J81o0kc5BXDZ0tk8p9AdOT9i1itv7+Gb48Z3I9PWN3BhxoKd3WtDocezkRW39sxdJwlz ZehaOrZrMMdlHgFlIac1vy/hC3zKBJqBXVe96Wbt5GwUt7taKZEq6oK3R4geVvzLwYBU OrGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786259729; x=1786864529; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=OmNU6KqTmzL/zIuJqf0Vz5N9nW2alEymL/EvtGqx9YY=; b=NjBx4jKRhHCrLSbnRJ/BL2dPcVmr4+CpcMQDWKEsSeJmmuvJNenaQELkiR6+N21Del 3n4AEBRtmtQqB+pV4/yL4th2SOR05eAkd5i4hZJjsEM6nByneSdkmLx1Dj7ulxFetcKO jXEax/rR/xR3RBghOqKhwdod7sMZxkrKtSnkrhNwWr1x6Q3UuZubCv3x8CyrnpQME8Ps X2Ik3oeoKdtr22wccjombun4qGw3ESAYy+O0LpeN3uL8i6tEZtUoXL8Y6b8dGGVi7ekT moscnVB0w/uiC+kKBT2l/596t7/VdOs3OEmdKO3qhDl2bVHfhr66hBTppI5vTl6jAF1Q 0IcQ== X-Forwarded-Encrypted: i=1; AHgh+Ro6fjogzzqPzbRlta7ssae0rrXSaXQFbZhWFQZIrlNrEI+GITbYtYrONQ+0lZHTmUh8EpNFWlgSfwhvTc4=@vger.kernel.org X-Gm-Message-State: AOJu0YxOOx3tEoQOMWngjPPJ+qPrLQxfY6FPH06cxgxZPgHTLEKWt4SU aIxfdI2PwDdXErlxrlBIWu5tiJyjsusN+b67zQM1Txm9SQqp/XAgw1q9FO0BbimG13LUk8p7uBz KTfcWnEcUUg== X-Received: from dloo4.prod.google.com ([2002:a05:7023:a44:b0:13d:1fe2:b775]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:4c89:b0:38c:a59b:5189 with SMTP id 98e67ed59e1d1-3903c5aefe9mr33482071a91.15.1786259729335; Sun, 09 Aug 2026 00:15:29 -0700 (PDT) Date: Sun, 9 Aug 2026 00:14:53 -0700 In-Reply-To: <20260809071455.1221514-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260624051535.3584977-1-irogers@google.com> <20260809071455.1221514-1-irogers@google.com> X-Mailer: git-send-email 2.55.0.679.g6767b8d81c-goog Message-ID: <20260809071455.1221514-15-irogers@google.com> Subject: [PATCH v3 14/15] perf python: Fix memory leak in pyrf__metrics_cb From: Ian Rogers To: irogers@google.com, acme@kernel.org, namhyung@kernel.org Cc: adrian.hunter@intel.com, alice.mei.rogers@gmail.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, leo.yan@linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tmricht@linux.ibm.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In pyrf__metrics_cb, PyDict_SetItem does not steal the reference of the key and value, so they need to be decref'ed after successful insertion to avoid memory leaks. Fixes: 47b3e95728eb ("perf python: Add metrics function") Signed-off-by: Ian Rogers --- tools/perf/util/python.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index 71431c9c2e76..077e0f5d9fcd 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -3574,6 +3574,8 @@ static int pyrf__metrics_cb(const struct pmu_metric *= pm, Py_XDECREF(dict); return -ENOMEM; } + Py_DECREF(key); + Py_DECREF(value); =20 if (!add_to_dict(dict, "MetricName", pm->metric_name) || !add_to_dict(dict, "PMU", pm->pmu) || --=20 2.55.0.679.g6767b8d81c-goog From nobody Tue Sep 29 10:31:59 2026 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3E6C43AE706 for ; Sun, 9 Aug 2026 07:15:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.199 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259734; cv=none; b=loReOLbSYLsAbOxmAeoPRLHucmPyF3tdpxJDbwj1+8xLF8qdPqQIhqE3OdAWHHgb5YMrHu+EhpUz9wkNAUMoruHoLCXYltX6IwAztg/jX3/RurhMIMye+k8ywSjDkfwNGdStPcXL819bsdvLkVJADY7pi9gt7KnNAmEa6VILUYM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786259734; c=relaxed/simple; bh=WqXvWR2hCxFvOgd+6gdprd/n6snSgyVLotq2AlUBaqE=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=AikwgAcb3sGoWujY1N2KVr5B0dZJg8Tm/nVEPsXf3TLi9MZFl690tZHJ9ya9jPSP2xi+PlEV1+UdzcycpfefoDY2AFL4el7Bq3ANmUzQR6jxgx+hoV8fWsZMOt40dpSXGuGzBbXOVX+ZPaJrOhu36BmPXjvpetEtzy6j5XZGUYw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=PIO30/1F; arc=none smtp.client-ip=209.85.214.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="PIO30/1F" Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2cca5e0a0c9so20697785ad.1 for ; Sun, 09 Aug 2026 00:15:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786259731; x=1786864531; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=fGltuG+0CYnELP248yw/EDAEAytweOI4Owg75trfZt0=; b=PIO30/1FKFlokpDXke58LSvXU6Dq5q99fBGf/V2F6X0TFOBnmBwYFMecEfpXMGVJu7 haBq3/3TqZHEcryQXpY0IikuAbIDhRzMqbJ1hRUSBKY5dFjQQmQIh2wEK696b2LMz1eQ qLoV7mEgJCSnZQpN8vL8smU0cHl8A14ydJCmbUqNpVMKBu/dSZ2nBtYpe/n4th5SNMln e+caEObgFsS6nB3Kza4hyXjdBCBXSlqHZJZ4E2rFZgejLOgXD5wIngpQMG18q0E5+kE7 fDEdLPU2WSevrdapKmDkKvcTltR7Qy39itZWfIzXbsXUDjgi2Cz96YI2LlPRCNkMQyFA EE+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786259731; x=1786864531; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=fGltuG+0CYnELP248yw/EDAEAytweOI4Owg75trfZt0=; b=CG9EbyNfp1qvgDdoHXaNeKdV+dk+fQ3SXz47KUr2T545W33f8zzHzMTqyiz7789qow DX/zEmjX0QhBH+Kvdp/z7UxMcN1TOhHQ8bY4DIzTIMF6aClLofT6YWAP25c/hOsNsRAu Oo1aRsmToypxu9+9j5lPuvDXLXRbtmkFX9iU36RFDz7dju09Ads/BukXT5cOf91h1jSa N6D/yW7w7F+OKUrLteEAFohXn6QZ3HK8BJIo8/0BW+l2lvHZ+gF2EUCzbOocy9i8AN/b vdyTGsD/g9daLzJE/2rV00N5quqo7kW02JlE1S3quB+SHEMdslZPQ6OvFC2lTNgqgAg7 VMhg== X-Forwarded-Encrypted: i=1; AHgh+RojbrfkILI6ediZSnC2SAn6MfKF0E4+KVOT2j7EhbDEfjTMvIUdt0kbhwHIY6TkD8viq4rA91HzSUTjPoI=@vger.kernel.org X-Gm-Message-State: AOJu0YxluS92irCDEfgrodepblqBSc3MJe8Hn8q8H55IMsCrC6ifmQLH LjuX73Kfc3FPHaW76lPc3RBR7ajpuKKWUns/KTACwGNgs/fS9w9KEo7aDfGGU8U27o0m/JKR6e5 jD54BMrClvQ== X-Received: from dlbdm7.prod.google.com ([2002:a05:7022:6b87:b0:141:c12:d053]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:730e:b0:3c3:791e:5e0c with SMTP id adf61e73a8af0-3cbce8e5348mr13746989637.19.1786259731293; Sun, 09 Aug 2026 00:15:31 -0700 (PDT) Date: Sun, 9 Aug 2026 00:14:54 -0700 In-Reply-To: <20260809071455.1221514-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260624051535.3584977-1-irogers@google.com> <20260809071455.1221514-1-irogers@google.com> X-Mailer: git-send-email 2.55.0.679.g6767b8d81c-goog Message-ID: <20260809071455.1221514-16-irogers@google.com> Subject: [PATCH v3 15/15] perf synthetic-events: Fix divide by zero in perf_event__synthesize_threads From: Ian Rogers To: irogers@google.com, acme@kernel.org, namhyung@kernel.org Cc: adrian.hunter@intel.com, alice.mei.rogers@gmail.com, dapeng1.mi@linux.intel.com, james.clark@linaro.org, leo.yan@linux.dev, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tmricht@linux.ibm.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" If scandir() finds no matching tasks in /proc, n is 0. If thread_nr is > 1, we bypass the single-thread fast path and then clamp thread_nr to n, making it 0. This results in a divide by zero when calculating num_per_thread. Handle n <=3D 1 early to use the single-thread fast path and prevent the crash. Fixes: 340b47f510bb ("perf top: Implement multithreading for perf_event__sy= nthesize_threads") Signed-off-by: Ian Rogers --- tools/perf/util/synthetic-events.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/util/synthetic-events.c b/tools/perf/util/synthetic= -events.c index 3583a60cc487..0c150193cca8 100644 --- a/tools/perf/util/synthetic-events.c +++ b/tools/perf/util/synthetic-events.c @@ -1175,7 +1175,7 @@ int perf_event__synthesize_threads(const struct perf_= tool *tool, else thread_nr =3D nr_threads_synthesize; =20 - if (thread_nr <=3D 1) { + if (thread_nr <=3D 1 || n <=3D 1) { err =3D __perf_event__synthesize_threads(tool, process, machine, needs_mmap, mmap_data, --=20 2.55.0.679.g6767b8d81c-goog