From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (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 6F7CF3EBF33 for ; Fri, 13 Feb 2026 00:45:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770943525; cv=none; b=I22MT3IG11zyItU4nQ3Wcs58Y7A57VucKnUxpUb8dn9WmoGXN0aawzr5F9C7/ac2NfXbev+aUMV2WvtjjmdkkWRG+FZhmApOsHLmD0ZV9tm3ImdBqbKRw5vz2o9hi9KULvjBy2gpiSMVE9sglfuDKY0hC+EYYEoOmSTWHlJh5h4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770943525; c=relaxed/simple; bh=Ak8NZRmMWh/S73zUnGZcHNvDX7uvi7KMDvTG6IFownk=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=Co9uEHHD6yy1ElgemGZC+iHAcIFWjh30tI4dqqj+yhh4y9vIhfZ1AzkHLcvW59Nax0NqGhb/ET6TDNJz4TNl08Wx0VC7YlVE1ZylP/umAHKj5Bkf7ZZFTSdyU43FYtY9LTkiGUR+yy18QSDCmKcJwhqmvWb05oSPactXbmCmilI= 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=MHblshg5; arc=none smtp.client-ip=209.85.214.176 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="MHblshg5" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2aaecf9c325so2523605ad.1 for ; Thu, 12 Feb 2026 16:45:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770943524; x=1771548324; darn=vger.kernel.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=SbNvfRVIMsuYFwVUGN+A3CzhBTKvVW4WK9rLQ9YjjD4=; b=MHblshg52Av080kkCUdPCSd0QhXd45Ys4C0ztAG/R1OTR5KCvxx4kAXw9lgjzTq9Ar huYJbgRVzpxlKUELU1YEk0fRL2pSDBEl8yq+dar8WaecuZomziWrr3OFYlCwm1Nob1WW l8rAkTwA7DxMJXpBjmhrEdoX7XPlse49l+ZdPhFAg+04ve/mTkVyZzaRvMvbMCdbT4Fj XNRIw5Ef9IjA2MgCC0V29o7ZWdKBLZbwfjWftg2+LKC0qgZaJfsjkcYO39UH7z4AvJ3a m4D3+DSX4If86bKDss3wif9OKrDk4bXqO7gRkr4an0hcVnO0bdoxxkbB0qWeG93jfYXF maOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770943524; x=1771548324; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=SbNvfRVIMsuYFwVUGN+A3CzhBTKvVW4WK9rLQ9YjjD4=; b=YSjD4lFe9cxvAKFlRkTcKDv6lRMrSveZc/nGUuu4MnKVuy8pg2h9OL4Ya3C2MFwUy2 uu380KzW0Ja3KjYFmGoNkQ3scrFG882XvKBMXOayREnBvharB/XCeYTw5TP0diFIuQmQ XhfteGs8jfeyz4s1/n4H+nP+xVfTH08uqAMPkZqfq7Aviytu6Rx5ONQZ+djO0bPWT2N9 Q1ux3ZtJStDLqe28MEQpIjTDwU3wvce3MCWbYnKEZ9LxG9H3gL39O0o2vREoHqk/iYHc bpyB/Sgc1XC5vnPHiKP2UvNiBQJMaOsS9Z5nbHIujWiL6TnoqWWsOrHXp2mpjeoBY1zC ZfDw== X-Forwarded-Encrypted: i=1; AJvYcCV+0cWnQ51fUOgCiAlA8qjyXvJUG4ccPQbC/jBTXTRsSqnI/01Pbm8oRXVSLmcSUtb/nUf+XzoqdnEe3hA=@vger.kernel.org X-Gm-Message-State: AOJu0YxhGGOxiPnlzjUKFT6PZcNvxB20D/Ng5di10n031dqdqpdvwMCR 40WKzwH/uvZAnqzMempuguQcAGE7mG6bFx0RMvw8rT/5X7Bq0PBBkbPEbZBM5ilj X-Gm-Gg: AZuq6aLLUyXAtn4lhIXEvUCaDgsG7Z4Rueieqn/ZMwwz02LNxPxh+hIQTqtc2s9zmso BDMPddVe+8XoiwkKHNLMWt/8GnxDNjPwOCztOdRijQLuhBmScT5pBUD+OiYh0I7Zc3fYh5dvxXr hqXgVYy2YlEyNqWdmpwhEdX6eAflHAEtovK8OuLxrFEf7mNl+egV4+SrqkDLL6mWiVSlNFZL1+9 3R64lAm3pXhUqSL99Q/R8ZbrvFf8CpI6Y1Cc7mzU2WkAmu4M59BFLg66se8rQBSCdH6LeTzDfO9 nMLmqU1bO0KxqJNNMwkTrb4snurMlRjkzPcCL0DX8ZNIGgexsXQSjtTZxJjLp00Wdq3Kmt8jm82 g9yodvRSbPIZtsuzLH6MEMr55ecAkBqe3IhHN9/ffofdEcrSnScgjU88bUfKQQ5Ut7fr7OchibX F0bxC0j7I+rjUNTPH86N2R/lu2mizuMQ8B9L6OrITReJeWQ0fj4Oo= X-Received: by 2002:a17:903:3bcf:b0:2aa:e238:e20c with SMTP id d9443c01a7336-2ab4ffa4ecbmr1660345ad.19.1770943523797; Thu, 12 Feb 2026 16:45:23 -0800 (PST) Received: from [192.168.0.56] ([38.34.87.7]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ab2997aebdsm63427175ad.66.2026.02.12.16.45.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Feb 2026 16:45:23 -0800 (PST) Message-ID: <834d266c1bce8d08484780d825136c7f51caf52e.camel@gmail.com> Subject: Re: [PATCH bpf-next v1 10/14] selftests/bpf: Fix resource leaks caused by missing cleanups From: Eduard Zingerman To: Ihor Solodrai , Alexei Starovoitov , Andrii Nakryiko , Daniel Borkmann Cc: Amery Hung , Mykyta Yatsenko , Alexis =?ISO-8859-1?Q?Lothor=E9?= , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@meta.com Date: Thu, 12 Feb 2026 16:45:20 -0800 In-Reply-To: <20260212011356.3266753-11-ihor.solodrai@linux.dev> References: <20260212011356.3266753-1-ihor.solodrai@linux.dev> <20260212011356.3266753-11-ihor.solodrai@linux.dev> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.58.1 (3.58.1-1.fc43) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 On Wed, 2026-02-11 at 17:13 -0800, Ihor Solodrai wrote: > ASAN reported a number of resource leaks: > =C2=A0 - Add missing=C2=A0 *__destroy(skel) calls > =C2=A0 - Replace bpf_link__detach() with bpf_link__destroy() where approp= riate > =C2=A0 - cgrp_local_storage: Add bpf_link__destroy() when bpf_iter_create= fails > =C2=A0 - dynptr: Add missing bpf_object__close() >=20 > Signed-off-by: Ihor Solodrai > --- Acked-by: Eduard Zingerman [...] > diff --git a/tools/testing/selftests/bpf/prog_tests/sockmap_basic.c > b/tools/testing/selftests/bpf/prog_tests/sockmap_basic.c > index 256707e7d20d..ce010602a443 100644 > --- a/tools/testing/selftests/bpf/prog_tests/sockmap_basic.c > +++ b/tools/testing/selftests/bpf/prog_tests/sockmap_basic.c [...] > @@ -763,12 +763,15 @@ static void test_sockmap_unconnected_unix(void) > =C2=A0 map =3D bpf_map__fd(skel->maps.sock_map_rx); > =C2=A0 > =C2=A0 stream =3D xsocket(AF_UNIX, SOCK_STREAM, 0); > - if (stream < 0) > + if (stream < 0) { > + test_sockmap_pass_prog__destroy(skel); > =C2=A0 return; > + } > =C2=A0 > =C2=A0 dgram =3D xsocket(AF_UNIX, SOCK_DGRAM, 0); > =C2=A0 if (dgram < 0) { > =C2=A0 close(stream); > + test_sockmap_pass_prog__destroy(skel); > =C2=A0 return; > =C2=A0 } Nit: initialize `stream` and `dgram` as -1 and add an exit label? > @@ -780,6 +783,7 @@ static void test_sockmap_unconnected_unix(void) > =C2=A0 > =C2=A0 close(stream); > =C2=A0 close(dgram); > + test_sockmap_pass_prog__destroy(skel); > =C2=A0} [...] > diff --git a/tools/testing/selftests/bpf/prog_tests/struct_ops_private_st= ack.c > b/tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c > index 4006879ca3fe..c36aa2354d2f 100644 > --- a/tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c > +++ b/tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c > @@ -56,6 +56,7 @@ static void test_private_stack_fail(void) > =C2=A0 err =3D struct_ops_private_stack_fail__load(skel); > =C2=A0 if (!ASSERT_ERR(err, "struct_ops_private_stack_fail__load")) > =C2=A0 goto cleanup; > + struct_ops_private_stack_fail__destroy(skel); > =C2=A0 return; Nit: just remove 'return' instead? `cleanup` already calls `destroy`. > =C2=A0 > =C2=A0cleanup: > diff --git a/tools/testing/selftests/bpf/prog_tests/tc_opts.c > b/tools/testing/selftests/bpf/prog_tests/tc_opts.c > index dd7a138d8c3d..2a4fd367da0a 100644 > --- a/tools/testing/selftests/bpf/prog_tests/tc_opts.c > +++ b/tools/testing/selftests/bpf/prog_tests/tc_opts.c > @@ -1363,6 +1363,7 @@ static void test_tc_opts_dev_cleanup_target(int tar= get) > =C2=A0 ASSERT_OK(system("ip link del dev tcx_opts1"), "del veth"); > =C2=A0 ASSERT_EQ(if_nametoindex("tcx_opts1"), 0, "dev1_removed"); > =C2=A0 ASSERT_EQ(if_nametoindex("tcx_opts2"), 0, "dev2_removed"); > + test_tc_link__destroy(skel); Nit: this is exact copy of the `cleanup` label below. One can replace the three ASSERTs and the `destroy` call with `goto cleanup`. [...]