From nobody Fri Apr 3 06:11:01 2026 Received: from out-183.mta1.migadu.com (out-183.mta1.migadu.com [95.215.58.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ECD7829346F for ; Wed, 18 Feb 2026 00:31:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.183 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771374686; cv=none; b=at1u6KFIVI5Ig95wFVmd5A6oMceipDonmi6RJNHnGVteVz7RdeRm7MEugyJzZB+9t+BLthcJGZg55pQii4K6Bkr7ivNWbRL5rZ1OhyRoBEddCvZwtitcBKspypgCx3lTCGjAjs5VOaNNeHg7pAzdUazKS3Pn/eY75VhnGeRFNPw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771374686; c=relaxed/simple; bh=Dqjt9da2F3+bSTPjCKiM2B8GO3yugqgHmf62RfXNF/M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Sn5a+rYVaWCQwHMH84eEKcycRZJ1YU9I1XKLdlZk2M1ieSYC0lFKQ+lX696iZi2elSmHG+eKRmO7qNdkRQx6YJWzFpw9nsf/0TWV+b2HVtfpeCvo3j7IAtlolwhxp+t/o9f12wTTKa0QztcfP2Mn0KNHT68yy1lJYB5CZSyItQA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=ZWNbUZ3k; arc=none smtp.client-ip=95.215.58.183 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="ZWNbUZ3k" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1771374683; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5WbVeiBXZtOYlCXL9iWHzaxACQwulopsaza7fJa1mOo=; b=ZWNbUZ3kU9uhSfgGZuLLjWRTE0DvSuZ2JMh5kr4SryOSyFVVwAkeepDW9RcaVlqaIFxatH C9KEOvn3aIsLGsFE9xomGm9vgs67le0kz+r4cL0iSoIv7labUNrxwxQftNHJWLLC4GAT9x w1Z0gSK2njwv59WgZL3aDkrm4HTkstU= From: Ihor Solodrai To: Alexei Starovoitov , Andrii Nakryiko , Daniel Borkmann , Eduard Zingerman , Jiri Olsa , Mykyta Yatsenko , =?UTF-8?q?Alexis=20Lothor=C3=A9?= Cc: Amery Hung , bpf@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@meta.com Subject: [PATCH bpf v2 05/15] selftests/bpf: Fix memory leaks in tests Date: Tue, 17 Feb 2026 16:30:31 -0800 Message-ID: <20260218003041.1156774-6-ihor.solodrai@linux.dev> In-Reply-To: <20260218003041.1156774-1-ihor.solodrai@linux.dev> References: <20260218003041.1156774-1-ihor.solodrai@linux.dev> 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 X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" Fix trivial memory leaks detected by userspace ASAN: - htab_update: free value buffer in test_reenter_update cleanup - test_xsk: inline pkt_stream_replace() in testapp_stats_rx_full() and testapp_stats_fill_empty() - testing_helpers: free buffer allocated by getline() in parse_test_list_file Signed-off-by: Ihor Solodrai Acked-by: Eduard Zingerman --- .../selftests/bpf/prog_tests/htab_update.c | 1 + .../selftests/bpf/prog_tests/test_xsk.c | 24 +++++++++++++++---- tools/testing/selftests/bpf/testing_helpers.c | 1 + 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/htab_update.c b/tools/t= esting/selftests/bpf/prog_tests/htab_update.c index d0b405eb2966..ea1a6766fbe9 100644 --- a/tools/testing/selftests/bpf/prog_tests/htab_update.c +++ b/tools/testing/selftests/bpf/prog_tests/htab_update.c @@ -61,6 +61,7 @@ static void test_reenter_update(void) =20 ASSERT_EQ(skel->bss->update_err, -EDEADLK, "no reentrancy"); out: + free(value); htab_update__destroy(skel); } =20 diff --git a/tools/testing/selftests/bpf/prog_tests/test_xsk.c b/tools/test= ing/selftests/bpf/prog_tests/test_xsk.c index bab4a31621c7..7e38ec6e656b 100644 --- a/tools/testing/selftests/bpf/prog_tests/test_xsk.c +++ b/tools/testing/selftests/bpf/prog_tests/test_xsk.c @@ -2003,9 +2003,17 @@ int testapp_stats_tx_invalid_descs(struct test_spec = *test) =20 int testapp_stats_rx_full(struct test_spec *test) { - if (pkt_stream_replace(test, DEFAULT_UMEM_BUFFERS + DEFAULT_UMEM_BUFFERS = / 2, MIN_PKT_SIZE)) + struct pkt_stream *tmp; + + tmp =3D pkt_stream_generate(DEFAULT_UMEM_BUFFERS + DEFAULT_UMEM_BUFFERS /= 2, MIN_PKT_SIZE); + if (!tmp) + return TEST_FAILURE; + test->ifobj_tx->xsk->pkt_stream =3D tmp; + + tmp =3D pkt_stream_generate(DEFAULT_UMEM_BUFFERS, MIN_PKT_SIZE); + if (!tmp) return TEST_FAILURE; - test->ifobj_rx->xsk->pkt_stream =3D pkt_stream_generate(DEFAULT_UMEM_BUFF= ERS, MIN_PKT_SIZE); + test->ifobj_rx->xsk->pkt_stream =3D tmp; =20 test->ifobj_rx->xsk->rxqsize =3D DEFAULT_UMEM_BUFFERS; test->ifobj_rx->release_rx =3D false; @@ -2015,9 +2023,17 @@ int testapp_stats_rx_full(struct test_spec *test) =20 int testapp_stats_fill_empty(struct test_spec *test) { - if (pkt_stream_replace(test, DEFAULT_UMEM_BUFFERS + DEFAULT_UMEM_BUFFERS = / 2, MIN_PKT_SIZE)) + struct pkt_stream *tmp; + + tmp =3D pkt_stream_generate(DEFAULT_UMEM_BUFFERS + DEFAULT_UMEM_BUFFERS /= 2, MIN_PKT_SIZE); + if (!tmp) + return TEST_FAILURE; + test->ifobj_tx->xsk->pkt_stream =3D tmp; + + tmp =3D pkt_stream_generate(DEFAULT_UMEM_BUFFERS, MIN_PKT_SIZE); + if (!tmp) return TEST_FAILURE; - test->ifobj_rx->xsk->pkt_stream =3D pkt_stream_generate(DEFAULT_UMEM_BUFF= ERS, MIN_PKT_SIZE); + test->ifobj_rx->xsk->pkt_stream =3D tmp; =20 test->ifobj_rx->use_fill_ring =3D false; test->ifobj_rx->validation_func =3D validate_fill_empty; diff --git a/tools/testing/selftests/bpf/testing_helpers.c b/tools/testing/= selftests/bpf/testing_helpers.c index 16eb37e5bad6..66af0d13751a 100644 --- a/tools/testing/selftests/bpf/testing_helpers.c +++ b/tools/testing/selftests/bpf/testing_helpers.c @@ -212,6 +212,7 @@ int parse_test_list_file(const char *path, break; } =20 + free(buf); fclose(f); return err; } --=20 2.53.0