From nobody Sat Feb 7 23:47:54 2026 Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) (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 AC3B528030E for ; Sun, 18 Jan 2026 13:02:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768741375; cv=none; b=MsIAvYdPXDwRlQtk6Adk4lJLWuoo0tYcO5l24S5TdEd8sbAZoBfAYm97rFY7bkGGLIL2FjobVEbl/S9tKr2tZ9Q30ReoLEJG2MN0ErdiiHcA0AtbWMVfTyOvTNoK4JzBOLmlAwdWUVupzvvQLgYXtlJA3GMkvGIjRp1gNe8nhhs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768741375; c=relaxed/simple; bh=vSrSo5xCPlFRjSaQuKEODqf7Gh2GSvzTadP0Y1G+o9U=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=KI5aUQTc2pJ3JgraCFlTo99VdO6GSdWHK5BH3DHI5pDhuJDXdVyiTIuOgtuugy4c5R7t0/jZ4MSOtMVm3DqU4s9CZmQLrBJMrn36uDK1i5t5llrulMGDtKUr+HkVzHvXNL3U+CslWJiMUTbKqyNTsYIXq4L6+3NgdlqQEwEhRJ0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=QsOkq7EV; arc=none smtp.client-ip=209.85.216.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QsOkq7EV" Received: by mail-pj1-f54.google.com with SMTP id 98e67ed59e1d1-350fd09fdd0so2316040a91.0 for ; Sun, 18 Jan 2026 05:02:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768741374; x=1769346174; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=3A7fmXMkUfzcNTiki9Zm6WuYpb2ND7j8d01F35TgTng=; b=QsOkq7EVH+7Wu3C159o4r4dkL4p44rdJkZtxIsOQe/LZuA2QpzxAH6A0j6FUsjHb5H NQMYk455VJgooPWQ3I/TTy1HxWC52RifZsh0TE5aXDtfGREfpWXDchyxQHQl93UeWeLL /9cYFwVenWsLSuutE8J8553TiY1bnB+SI/O9xo6e9nnL6oFxRDi56MyWC2fqgZy0zSHZ yBPFdK6xMNBY59VRAP4y9mjDPT1zLBGWn9YumNG9TR5L/4zmsdhkLojr2fFJem55/ViQ ArPIrpo/mTnk5qw9LGjDEXhyq1WWB8jac+BHH+rag0GVrjs1aJ0Ukx78R7P7CZ6pdBze 26ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768741374; x=1769346174; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=3A7fmXMkUfzcNTiki9Zm6WuYpb2ND7j8d01F35TgTng=; b=U/2SLwyvxjWPT2Yjhbvm+mFwl+2xxxVqp7E1HdWu78fn2ZA92MmI2PPeU6aQn8Acoz 1KibwB15qdHzEMOrSbkwrqP+ssFEmor4R1za+Nd2grYpoEOCOJ/Sz2SCZTVy4zZgxIGq R6jD+x3zOdPgJ/9pnp6zp7Kp1cAP7vnUAfP2B7HBSgMv3DmogYBUcaOaZ8YUYD4riJjd BVI+0iWJGIjO7M2qlBuTS22FakBN69Xiu8RHse5SiOfSBaBtq5PVcwb42pxyE4Ma0qOH JG/CCOJkrKcay/rkyASJ36y5NuSugtbwWM7iUlVtZ60ZxKBzv7WlZLPaQdI+xRi8QN3n aFvA== X-Forwarded-Encrypted: i=1; AJvYcCV2vL1fu8Bsa3kO4/HBI70/gW1DQiEhndrIDiQ5JX48TVb7m4JZ+c3cyK78gG5hQm07RQ94PnR3rWVoCO0=@vger.kernel.org X-Gm-Message-State: AOJu0YyazyOJ9giNOzMHLRMMVgScfeMzSfcuFbGGMhkadlOiHt4MGkxu 3SIKC2SkRNNh+Rn6ZScbW12JI2Tyk3dx3vSlppBrXWhX614cDMtPKeav X-Gm-Gg: AY/fxX5ByiGqgJJ9JVmvDXeX6hrmRwuE8/bVNEPA7NU0T1t7YZWtUPNLawVrFJJYpf2 k6l/RnKxgBj7PAJhUzW+aGanG7WAdHiJqA3wxEWIYGeHpk2hd68h0ZV3sZU6ZpY96AN9GQtXFn+ 1NK9liBl5IgTUgRu3UjflU1cAjngtUHSceV10g2+Bbtxv437BF6Crmc1rugQaDeOu12sYfwBWnw iK+w3PFygvktKkohhBnTExRDC5tnQpI8m/SBfsHn3tmneXvdqi6IYCjyBGSaNPmnGv7bQFuZYok s4rRlXtQGBT7XyEuIU7i47TBcD6U3QDY0a5B2qQcAIhawOvexqNfqgEE++f09+vQeKFzR3feLR0 TIWTaIG/+xrjIBZzjJYIvThj1akLO+sRVpRy0YbmOb4NiSzr6ebs2h1vopLwd/I6KyYyS1C14Ql EZqWjcn0AcNRwjlYRJUEBvkm5UIKrc0IRiTWnTJJjPvWK+OauEqzodlk2ZYVPQUABirdOo5+Zqk w4vxWTHNFDpcO2OWhAc82TugbDHU0wje1UlIyOfgl8CfVY= X-Received: by 2002:a17:90b:4f49:b0:34a:be93:72ee with SMTP id 98e67ed59e1d1-35272bf2628mr7224945a91.8.1768741373993; Sun, 18 Jan 2026 05:02:53 -0800 (PST) Received: from c8971f1abf06.ap-southeast-2.compute.internal (ec2-54-252-206-51.ap-southeast-2.compute.amazonaws.com. [54.252.206.51]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35273121856sm6639459a91.15.2026.01.18.05.02.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 18 Jan 2026 05:02:53 -0800 (PST) From: Weigang He To: Steven Rostedt , Masami Hiramatsu Cc: Mathieu Desnoyers , linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, Weigang He , Tuo Li Subject: [PATCH] scripts/tracepoint-update: fix memory leak in make_trace_array() Date: Sun, 18 Jan 2026 13:02:47 +0000 Message-Id: <20260118130247.1003369-1-geoffreyhe2@gmail.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In make_trace_array(), if add_string() fails after some successful iterations, the function returns without freeing the 'vals' array that was allocated by previous add_string() calls. The add_string() function uses realloc() internally with a local temporary variable, which means the original pointer is preserved on allocation failure. When make_trace_array() returns early on error, the previously allocated memory is leaked. Fix this by freeing 'vals' before returning on the error path. This bug is found by my static analysis tool and my code review. Signed-off-by: Tuo Li --- scripts/tracepoint-update.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/tracepoint-update.c b/scripts/tracepoint-update.c index 90046aedc97b9..7bc9d66229ddf 100644 --- a/scripts/tracepoint-update.c +++ b/scripts/tracepoint-update.c @@ -93,8 +93,10 @@ static void make_trace_array(struct elf_tracepoint *etra= ce) for_each_shdr_str(len, ehdr, check_data_sec) { if (!len) continue; - if (add_string(str, &vals, &count) < 0) + if (add_string(str, &vals, &count) < 0) { + free(vals); return; + } } =20 /* If CONFIG_TRACEPOINT_VERIFY_USED is not set, there's nothing to do */ --=20 2.34.1