From nobody Sun Feb 8 05:58:59 2026 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (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 F051F329C6B for ; Wed, 21 Jan 2026 09:42:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768988572; cv=none; b=FQO5bQbsO2PrCtdVLzH95w7EKbaRniQy9tW7QOs9HwUCXjVfZMu9mnEYP9oAOd0M8w1x3FJmhxQ4taKexj8pIL5hsMWn4tYqVCdj+dq4d4ClkyQxQNogcBZQbXKLuH4cCtaCkB7x8kPuBg/9fsizbCfMBUzBMl8Ke2fHHJnpb40= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768988572; c=relaxed/simple; bh=u7um/yROV0Uoc6Lyio+e+E+tFGmnAo1AVUvWvMlK77s=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=inKt+UvWfdri3m8h0L3Q1nmv/JUahaUvjTTquF29k71N+d8I/XnGjf+YOhGoGF/fW4xI6doV38LONgttOZ8WBKKvAUAq4Jv0ZBwjJnv4mmTkw6Id4BpnG1YvQkIXXw9E7wLklOkZK3IxCAdz7s1Dp1pmAZoyp0E/ayXkkaJk/MU= 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=L6GkV8cu; arc=none smtp.client-ip=209.85.214.169 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="L6GkV8cu" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2a0c09bb78cso5270225ad.0 for ; Wed, 21 Jan 2026 01:42:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768988570; x=1769593370; 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=6crH5fiQLouF15MwsFqqEri1pA43lFVDbD7kBDfCmV4=; b=L6GkV8cuMRL1Z+LTFZjcZ2ISHcEZUIQ0vgCJ0FdVPSYFsn6wvv+kr68r1zkuAyHAMM JSaDhiHJdHSiGhE2RnAkfw0vYRAI+PylmmYzrPJx7p2RePu/AFyc1KdS+qcpnmfCWoeY 9nGzgn6HJIuhifXbeElI7gMwySWBHzRgGUUMpuyh1KsHJfnuc3Wv7Lt2VoAzfjiKOlzz 6XqWc6KyTO2moFbYR87JIHy+nxJcb8ukrdmeYAfNIYDyNN5ki2ktFTQdV433u/WG1qvd DUyfqqsaSNBXMhiC9QCtj50OjszazAwbou1Xl9JK68o131FtlX6BvCC67nkmS/wB+e6H eGVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768988570; x=1769593370; 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=6crH5fiQLouF15MwsFqqEri1pA43lFVDbD7kBDfCmV4=; b=HkUxuvWCDt0ghTOTFClJqMUeffGhgIW13NwFyRINzr4fxjm4GWkMS0OwvvSPIOeRml 1MXCv15rI2PfRwjyJ9LAKDaAL9AKqGFXIcj4tWmRHjfOfFG9DAlEs5kgdpX1XvUFy/7t A6B5o9x3bTgqw0SfkKHeXCjec06k1kzgYWqgm8oiZIzUPC2fXirDfpm76VRJ4Du65h5R pybsP6HsYZ2CNTk6pr7rzslqPt4zuAyeoIDMz02XvihCsCEKqUqwD1p5OJYN7BRROUW9 NUzOFnImgOJgFfPVZoaYxBdqyq1/xeYiTy4Ya70Ius8QBHeypCbvzIgqWE5teWBTQ2p8 8heA== X-Forwarded-Encrypted: i=1; AJvYcCXRxHJa2JsGviHKVy8BLK0gnv/Qn8VmDTmxbRwBF++HCm5HPAstB5JNJYNxD7tXl7w5Twjw/+eK4C7Sa0U=@vger.kernel.org X-Gm-Message-State: AOJu0YyS7AKnnw07mpUFiiPCn7BmsBqI10lvqBGJxdt2cc5URDvO/a8e eQjHF8WDYg4fvn9XPBvIZnOug8RvSqXbPLLtuTPE5/fg/8KEsSYqd2w= X-Gm-Gg: AZuq6aL5ySu9/Sg5YIwq/h6LbS0PtHH67JmKvH9fyISIidP2gkQtJxhJ20eArS2sMSf v6wmUIZkiim0bKSHMSUXxBgz+WD5YpECFktzUGrbr/36WxHCz88OrAUlXQNMw1LTsR2z7nWTJBb 2isTbRC3+isireF793AQ1Klw9KsjzWUKUXSt2dL1ZNBzcdvcLcHBuRCf8IKy18/koVAWilu5WRG ZPrv+qk0ZzptuWj6G7Z4u1TWB8LhNWMda7T+epXsoaSzI2L40toRoBm1wl42YcyjYRp3c/12wDX 2fPMovKapWHFOYDrMytjFUnfBTcbZ1bJbXQtretFXCwQHBtTPizcyQCzTHCiHLxXjANLeK2BTxo VtoPbCJ/YCPBpS/hd6voeHuNZGdwXq7XBQWZd5DnX3kpMaIT41Ttl/up4Z0+b+XokVIN4ctyfBF z68qOWsz3h2zY9irBJuWutqOc1sA== X-Received: by 2002:a17:902:f745:b0:2a7:9163:8e60 with SMTP id d9443c01a7336-2a7916393a6mr21147595ad.23.1768988570185; Wed, 21 Jan 2026 01:42:50 -0800 (PST) Received: from DESKTOP-BKIPFGN ([38.76.140.13]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a770945806sm40536875ad.70.2026.01.21.01.42.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jan 2026 01:42:49 -0800 (PST) From: Kery Qi To: ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, shuah@kernel.org Cc: martin.lau@linux.dev, eddyz87@gmail.com, song@kernel.org, yonghong.song@linux.dev, john.fastabend@gmail.com, kpsingh@kernel.org, sdf@fomichev.me, haoluo@google.com, jolsa@kernel.org, yatsenko@meta.com, bentiss@kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Kery Qi Subject: [PATCH bpf] selftests/bpf: Fix resource leak in serial_test_wq on attach failure Date: Wed, 21 Jan 2026 17:41:16 +0800 Message-ID: <20260121094114.1801-3-qikeyu2017@gmail.com> X-Mailer: git-send-email 2.50.1.windows.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" When wq__attach() fails, serial_test_wq() returns early without calling wq__destroy(), leaking the skeleton resources allocated by wq__open_and_load(). This causes ASAN leak reports in selftests runs. Fix this by jumping to a common clean_up label that calls wq__destroy() on all exit paths after successful open_and_load. Note that the early return after wq__open_and_load() failure is correct and doesn't need fixing, since that function returns NULL on failure (after internally cleaning up any partial allocations). Fixes: 8290dba51910 ("selftests/bpf: wq: add bpf_wq_start() checks") Signed-off-by: Kery Qi Acked-by: Yonghong Song --- tools/testing/selftests/bpf/prog_tests/wq.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/wq.c b/tools/testing/se= lftests/bpf/prog_tests/wq.c index 15c67d23128b..84831eecc935 100644 --- a/tools/testing/selftests/bpf/prog_tests/wq.c +++ b/tools/testing/selftests/bpf/prog_tests/wq.c @@ -16,12 +16,12 @@ void serial_test_wq(void) /* re-run the success test to check if the timer was actually executed */ =20 wq_skel =3D wq__open_and_load(); - if (!ASSERT_OK_PTR(wq_skel, "wq_skel_load")) + if (!ASSERT_OK_PTR(wq_skel, "wq__open_and_load")) return; =20 err =3D wq__attach(wq_skel); if (!ASSERT_OK(err, "wq_attach")) - return; + goto clean_up; =20 prog_fd =3D bpf_program__fd(wq_skel->progs.test_syscall_array_sleepable); err =3D bpf_prog_test_run_opts(prog_fd, &topts); @@ -31,6 +31,7 @@ void serial_test_wq(void) usleep(50); /* 10 usecs should be enough, but give it extra */ =20 ASSERT_EQ(wq_skel->bss->ok_sleepable, (1 << 1), "ok_sleepable"); +clean_up: wq__destroy(wq_skel); } =20 --=20 2.34.1