From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ua1-f46.google.com (mail-ua1-f46.google.com [209.85.222.46]) (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 B22552EBBAF for ; Thu, 2 Apr 2026 15:48:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775144911; cv=none; b=aY7pvS4LxTdWBI+6SqxQMBGqgsyR7JT6ZSCzd3tSyadfJUVdMhCFk0L2eoMzc/J2AggpbFxoZUebOXDtNZ/2gT7yHiJI98ZvSxiHtDHY/P8UbpXTVivBMup6kh0bvkXwCdPaYzXs6pOPmZbENrBmxc1yL9Y7uAykOA1nmmqAjR8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775144911; c=relaxed/simple; bh=mR4dJqr/kRsaH7W3VkaiLJgPwY3uRTk2WenRHZJDliw=; h=Date:From:To:CC:Subject:In-Reply-To:References:Message-ID: MIME-Version:Content-Type; b=n34YnFw+WmGtw4rDJNEfHd2MAG28r85y63SLX8VpT3sj8c/8hfeinOEVGRgaZcdezomcJZbqE9z/7KBd5Ee0GzUv1hFzvcBlYWb4yA6zVowqytxiRGI6AOrhgpELz0yBejrwQwDATqXNadDxQQzXoXDoea5hYwIFtHdXR5xCMGg= 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=OO2NlgNO; arc=none smtp.client-ip=209.85.222.46 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="OO2NlgNO" Received: by mail-ua1-f46.google.com with SMTP id a1e0cc1a2514c-951a4e8d1b5so320784241.1 for ; Thu, 02 Apr 2026 08:48:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775144908; x=1775749708; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:references :in-reply-to:user-agent:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to; bh=1d/eRtpKUBbGeXwWEqsynzXEyvi7SdWU5Nw4sF1GCq0=; b=OO2NlgNOU/7CCVHSfsQeCEPH+aLTiYs6s5JmLbme0PGVMdjQI3xmUwep8tKtDjhCzX nx+dEQvUE1hR+M+TgjoxVF3INs+T6vc1nXNGKryJBti/RRF5+3Cu1etnPbj+OhgIJsRQ dvPO2Si9SHxmBqZ06HPVUXhAvPpx4pTftgcOeWKPpFjRn+G+vs8pZJ7sAhAqULMcfAKU Vs11cZQItNrvIBFYBSpa50bk1//UTiD0fSn0JieHuEiZo0ZI0S196BQVImaJaLjkZDIE 5Og63zbHSxta8A3+S1gSvoEuMaoO0WLUm+R0usEaCpnIfkldMoqWQaYLG5fS4aJUC/vk OUPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775144908; x=1775749708; h=content-transfer-encoding:mime-version:message-id:references :in-reply-to:user-agent:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=1d/eRtpKUBbGeXwWEqsynzXEyvi7SdWU5Nw4sF1GCq0=; b=ZTIl6qKsv23B3Z3xTMw9xbVdRJvkMYV2KDzBsFi9SfFnpL2ANz07xuqz8/cAisg2us 7Oen+aNrBzj3oQMxHVUVotQVZVBPGda5M8l7JpHYrtVW/gnbOSnbTMy02bsK1bZuVGTT 7M+Bu1HTMUffW/WwLrfwlZsts4+ZDXsnKjOMvcy5UfuO71+Ni1c8vAe5KSWjoLlo9ncQ qnKBNz54O/34Qg8lyXoIPgLuT6vMImk549BDcsOdSJaAe2C2IsXsKffqTkfj0S6MoEFc uQA9XtIn2nh/5u5HdPqJznziUfzj8309iZ5x20AUG6HbFKNmr6vId/LdyzyvzWR0MbYu 9LEw== X-Forwarded-Encrypted: i=1; AJvYcCUS1kpSQqTJ3aRx1izw8Zx0oaMe6zaQgoZubv2BhpAJ7eQHsn0ql+v/K+Xz9XopuN50VIhrgtpAMfaIKow=@vger.kernel.org X-Gm-Message-State: AOJu0YyiXtmayyEyCYObaqsJHkw2rEyYww+tWTWx3IMV3r0Zmp1hWpWG xdhoeClVrQju/CRQmGj3MgOOqkRtg6EBAYcOOMBuHYGImEXH7C9g4EGRtyZd9Q== X-Gm-Gg: ATEYQzyFYYXGHY1xY+Mrnh//yIdNnJfsF1uvSkjebToUf2oZBHP5t+o43sh9mkno4Fi G/rlKCjaWJKQycVhdm99zMImZtVvbh6v98ZaOxZII5uZwHMeEBrFnAzu49jTLuh7SvDrTC99eI4 e2fwRonPJg1xzeh//fqTRI5U5uhn2V2motgVVosdqYhym7EuEMWugwukTvC2BNMp+Su/FOmumBr SJMWOo+ijxiAL1cxUQmaaYL8NZzpPTLpwxjossM1wO2Z+Q7aXI52qpn+xotFD1IJvE2rjma4GqZ K2J9OPb7yy20N2rHoT7uXZnUtUFMNGwmjzDA9fPNeFzkHr5qAMJZbEj4m+w3OwNGFxG0HJYtJSV 5BbwtggitjN7jtM5mM++OrtPm2mkfB5fzbWrqh8NLO0G8NvvxmGZdxcAYHxXR4DnHPhEGj66qoC o0HdSn2ra9bWxCRHHeNFkFW5xARG/WJsFM7YOlMrtyaxHWPTfzjQ== X-Received: by 2002:a05:6102:3e26:b0:605:a89:d007 with SMTP id ada2fe7eead31-6058409b279mr1395979137.29.1775144908605; Thu, 02 Apr 2026 08:48:28 -0700 (PDT) Received: from ehlo.thunderbird.net ([2804:388:90c1:8f1:18a2:90d6:46f8:9787]) by smtp.gmail.com with ESMTPSA id a1e0cc1a2514c-953fb84f2c5sm3652725241.5.2026.04.02.08.48.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 02 Apr 2026 08:48:28 -0700 (PDT) Date: Thu, 02 Apr 2026 12:48:23 -0300 From: Arnaldo Melo To: Ian Rogers , Arnaldo Carvalho de Melo CC: Namhyung Kim , Ingo Molnar , Thomas Gleixner , James Clark , Jiri Olsa , Adrian Hunter , Kan Liang , Clark Williams , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo Subject: =?US-ASCII?Q?Re=3A_=5BPATCH_4/4=5D_perf_symbol=3A_Add_missing_l?= =?US-ASCII?Q?ibgen=2Eh_include_to_get_basename=28=29_prototype?= User-Agent: Thunderbird for Android In-Reply-To: References: <20260402001740.2220481-1-acme@kernel.org> <20260402001740.2220481-5-acme@kernel.org> Message-ID: <1A659979-30FE-4E90-B4B3-5278A2242C51@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On April 2, 2026 12:19:24 PM GMT-03:00, Ian Rogers = wrote: >On Wed, Apr 1, 2026 at 5:20=E2=80=AFPM Arnaldo Carvalho de Melo wrote: >> >> From: Arnaldo Carvalho de Melo >> >> This works in some places because there are tricks to prefer a GNU >> version instead of the XPG version, but started breaking in some musl >> libc systems due to some unrelated change that made libgen=2Eh stop bei= ng >> included by chance=2E >> >> Since symbol=2Eh is using basename(), make it include libgen=2Eh=2E > >Huh, this is being flagged by Sashiko: >""" >Could this include cause segmentation faults by exposing the POSIX versio= n >of basename() to the rest of the tools? > >According to the POSIX specification, if the input is an empty string >or slashes, basename() can return a pointer to a statically allocated, >read-only string literal (such as "=2E" or "/")=2E > >In tools/perf/util/probe-event=2Ec:convert_exec_to_group(), the code take= s >the return value of basename() and modifies it in-place: > ptr =3D basename(exec); > =2E=2E=2E > for (ptr2 =3D ptr; *ptr2 !=3D '\0'; ptr2++) { > if (!isalnum(*ptr2) && *ptr2 !=3D '_') > *ptr2 =3D '_'; > } >If a user provides an empty target or "/", the POSIX basename() would >return a read-only string=2E When the loop attempts to write a null or >underscore into it, wouldn't it trigger an immediate segmentation fault? > >Is there a way we can safely duplicate the returned string before modifyi= ng it, >or ensure the inputs never resolve to these static strings? >""" > >The story of the two basename versions and the issues appears in the >man pages=2E The whole thing makes me think we should avoid basename :-) :-) I think we should just follow it's advice and use strdup in it's return, i= n a helper, and have it's users free it afterwards=2E=20 - Arnaldo > >Thanks, >Ian > >> Signed-off-by: Arnaldo Carvalho de Melo >> --- >> tools/perf/util/symbol=2Eh | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/tools/perf/util/symbol=2Eh b/tools/perf/util/symbol=2Eh >> index c67814d6d6d6f64a=2E=2Eb37ecc2e90f77efe 100644 >> --- a/tools/perf/util/symbol=2Eh >> +++ b/tools/perf/util/symbol=2Eh >> @@ -10,6 +10,7 @@ >> #include >> #include >> #include >> +#include >> #include "addr_location=2Eh" >> #include "path=2Eh" >> #include "symbol_conf=2Eh" >> -- >> 2=2E53=2E0 >> - Arnaldo