From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (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 DCD993161BC for ; Thu, 12 Feb 2026 15:03:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770908617; cv=none; b=fvjAIfDnTqJkyJLFkWXSLsqdB1WJHFh7YDS8OCDXkmfQJQ+aZMwHttkO0hVAy6mfRIxMqI5iwyWpPvzPlxpRwBgN/AZTTdeRhw2cVJ1J+iDdfSftluE9nYV5mhU4TcunAlFpNa1lUAnFLhANvk/d4TorpmjgFg19VyElEklPlmA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770908617; c=relaxed/simple; bh=pjHL6nfFZNmObRUg03oolXUyoA6O+3vFT6CCgLRvuEY=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=dh7s4aWknenINml0ShbH0635wFO0lUZOwC5PHpTMjvG9hGUrdROcQOeldxjkRFXiqH6bRr3sHPABsuEzhbOzdJ738M47aLO4Ah/eCO2m+aWIcQppSSNPHzuP9jCOn4GRrVXYhvc959K+qSp6/wEZUL1Y67gYtGIbGD3NzpsXMvU= 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=bQtqVY4i; arc=none smtp.client-ip=209.85.221.47 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="bQtqVY4i" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-4362197d174so2213881f8f.3 for ; Thu, 12 Feb 2026 07:03:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770908613; x=1771513413; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=PMm+NpvUYUfUAQQuakZgWuhdBxlfHlslbmoPUfg6rKc=; b=bQtqVY4iVFc46uvoRJKL8Y6YECUoAxgr+r3hs0vNxjIlVDeL1aomQY1/qemkF3tQsF Shf/nbTEOOAFeuZ7TV2qb6+ivy+ds6IEd6oEy9OLzyXTWFWD2np2rAF6zvesXKWcKWpY d4FYjjFc6IOECEr7et/UQ0ruyyX82EX1LcCSVlJrxyo3pqbSCjU16/uIy1LICfeeaejZ GU1tmqn7CathB2/tlli7W3V7ZUMQww/T5VjCLOqUQG69s4Yl4z8qv2+VK56vNsESwFKp iLPSdVWvCRXAUw7ZAsbNHZD6JA56fK/fqvlpmw2gcw/EqjFTEM8WydNJasu/e5BpJHVy F/qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770908613; x=1771513413; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=PMm+NpvUYUfUAQQuakZgWuhdBxlfHlslbmoPUfg6rKc=; b=hoWyli58QUH1dwQGYsunttigFlyjA0MrxwmBw4Yx7y0wynVCpEP9Ku1kxjhTloBKJl V/deBR3a1Y/Wh8l9VIXERgBrJF5KO8ZacL4aJSHW1XsSsg1yKKb5rcmgODAKdrBCkMZV SqHr5O6ssJlzYx/E6wxoPYlH9h5HwbHBK4ZOToy2bu3f8eqG6Iy6JM4r88yaDRsUwQ57 uSt4qzO2d9rIaq7JJLs6aZq2aPCVSqo8luL86/8afeZkuUHUb11LaPy4ruWof1Hz0S23 uM/ldkG3jKNros1Yi9aSJ5LgzlagH3/9TK4Nc9GafVW5dDAQIWKJFFbZTZy2EZsRK1Es 6JKQ== X-Forwarded-Encrypted: i=1; AJvYcCUiv63ps/0TavdzzeJFXbyFj0ikDJDGkj+C2Mdkg2R5sU98KffVsSBEOp7Q2lfxI0ZIGPeilpdcWKrDfbk=@vger.kernel.org X-Gm-Message-State: AOJu0Yywzf7UW8NcnGdlW9dnxuMCzBMMgwvwZO3KPN3TblJ5NJ+638Af MaweUttZyg3Lg8XnrBO8rRY27bLZ1RWJGQyQ1Y1tzAyRmfX+qkZgWklT X-Gm-Gg: AZuq6aKiOqZbsk8wfxEQp+5YcyP6pigO9kMJRmLGHrbT8+aaKU0IRXsKfOVxXoNuMP2 ObUq2RLmKuBTAVUYgHGKhsQa+w3qAV6nYiUOcqZdn1n3GoH9bF1lfyBAT+pewfrkZdAEZH8noDd CVYBMKukJ9ZmAK9sd3NGfpjlzawh+2tG1SIueSfRuXBl/h73kzQkFn2Ta79MeY2U/owDgun/7Xd jwJ7OdvGNKr2fy9LY62NjzTlsrXXrWlcLjQEb5C3ysvS25kxaBpHHU2oSC4tDzoNSXVEb7ZTjvM XdUQfNwb33H+YTTXBzoq0JBDVvMRUFfeJ2FHRBXFJ53Ob3JZDK0G8kOPPhBpw1dZy+Evol897Zl FDGrt7Ncy3Z/u6gbtNgko1pZ75vIVbQy5Nd4lvAPeNRvXrC+KufN6Aw4FJW2wlaKkgJGe37pczk Jl6oG/tK+wEmcG0euViW9swrOdWEuKb6jwCfdtWsL6rajBNtObLGBi4lF9lPpspxXktW4HHaScn 1w4nlqHK1bGLak= X-Received: by 2002:a05:6000:18a6:b0:430:fb6d:1442 with SMTP id ffacd0b85a97d-4378f17bdfbmr4668209f8f.62.1770908612949; Thu, 12 Feb 2026 07:03:32 -0800 (PST) Received: from ?IPV6:2a01:4b00:bd1f:f500:e85d:a828:282d:d5c7? ([2a01:4b00:bd1f:f500:e85d:a828:282d:d5c7]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43783d746a3sm13012472f8f.17.2026.02.12.07.03.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 12 Feb 2026 07:03:32 -0800 (PST) Message-ID: Date: Thu, 12 Feb 2026 15:03:31 +0000 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH bpf-next v1 14/14] selftests/bpf: Check BPFTOOL env var in detect_bpftool_path() To: Ihor Solodrai , Alexei Starovoitov , Andrii Nakryiko , Daniel Borkmann , Eduard Zingerman Cc: Amery Hung , Mykyta Yatsenko , =?UTF-8?Q?Alexis_Lothor=C3=A9?= , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@meta.com References: <20260212011356.3266753-1-ihor.solodrai@linux.dev> <20260212011356.3266753-15-ihor.solodrai@linux.dev> Content-Language: en-US From: Mykyta Yatsenko In-Reply-To: <20260212011356.3266753-15-ihor.solodrai@linux.dev> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 2/12/26 01:13, Ihor Solodrai wrote: > The bpftool_maps_access and bpftool_metadata tests may fail on BPF CI > with "command not found", depending on a workflow. > This happens because detect_bpftool_path() only checks two hardcoded > relative paths: > - ./tools/sbin/bpftool > - ../tools/sbin/bpftool > > Add support for a BPFTOOL environment variable that allows specifying > the exact path to the bpftool binary. > > Also replace strncpy() with snprintf() for proper null-termination. > > Signed-off-by: Ihor Solodrai > --- > tools/testing/selftests/bpf/bpftool_helpers.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/tools/testing/selftests/bpf/bpftool_helpers.c b/tools/testing/selftests/bpf/bpftool_helpers.c > index a5824945a4a5..5435ecd720d1 100644 > --- a/tools/testing/selftests/bpf/bpftool_helpers.c > +++ b/tools/testing/selftests/bpf/bpftool_helpers.c > @@ -12,13 +12,21 @@ > static int detect_bpftool_path(char *buffer) > { > char tmp[BPFTOOL_PATH_MAX_LEN]; > + const char *env_path; > + > + /* First, check if BPFTOOL environment variable is set */ > + env_path = getenv("BPFTOOL"); > + if (env_path && access(env_path, X_OK) == 0) { nit: we are checking access(path, X_OK) in multiple places in this function, but never report any failures if those checks fail, it may be confusing for user, as file is there but function fails to find bpftool binary. > + snprintf(buffer, BPFTOOL_PATH_MAX_LEN, "%s", env_path); > + return 0; > + } > > /* Check default bpftool location (will work if we are running the > * default flavor of test_progs) > */ > snprintf(tmp, BPFTOOL_PATH_MAX_LEN, "./%s", BPFTOOL_DEFAULT_PATH); > if (access(tmp, X_OK) == 0) { > - strncpy(buffer, tmp, BPFTOOL_PATH_MAX_LEN); > + snprintf(buffer, BPFTOOL_PATH_MAX_LEN, "%s", tmp); > return 0; > } > > @@ -27,7 +35,7 @@ static int detect_bpftool_path(char *buffer) > */ > snprintf(tmp, BPFTOOL_PATH_MAX_LEN, "../%s", BPFTOOL_DEFAULT_PATH); > if (access(tmp, X_OK) == 0) { > - strncpy(buffer, tmp, BPFTOOL_PATH_MAX_LEN); > + snprintf(buffer, BPFTOOL_PATH_MAX_LEN, "%s", tmp); > return 0; > } >