Thread (46 messages) flat view 46 messages, 4 authors, 1h ago

Re: [PATCH v2 bpf-next 08/18] selftests/bpf: Validate that btf__permute transfer works

From: sashiko-bot@kernel.org
Date: 2026-09-01 17:16:01
Also in: bpf

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Missing NULL check on btf__raw_data() return value leads to segfault and uninitialized size usage in btf__new().
--

commit 843335a53af929d0f8f7676cbbf1cb2a7296aacb
Author: Alan Maguire [off-list ref]

selftests/bpf: Validate that btf__permute transfer works

This patch adds test coverage for the btf__permute() transfer mode. It
verifies type-ID remapping, LOCSEC record ordering in split BTF, and string
handling and deduplication.
quoted hunk ↗ jump to hunk
diff --git a/tools/testing/selftests/bpf/prog_tests/btf_permute.c b/tools/testing/selftests/bpf/prog_tests/btf_permute.c
index 04ade5ad77aca..ef75fd71df96e 100644
--- a/tools/testing/selftests/bpf/prog_tests/btf_permute.c
+++ b/tools/testing/selftests/bpf/prog_tests/btf_permute.c
[ ... ]
+/* Permuting BTF with a layout section must keep section offsets in sync. */
+static void test_permute_layout(void)
+{
+	LIBBPF_OPTS(btf_new_opts, opts, .add_layout = true);
+	LIBBPF_OPTS(btf_permute_opts, permute_opts);
+	struct btf *btf, *parsed, *transfer_btf = NULL;
+	const void *raw;
+	__u32 raw_sz;
+	__u32 permute_ids[] = { 0, 1, BTF_PERMUTE_ID_TRANSFER | 2 };
+	int err;
+
+	btf = btf__new_empty_opts(&opts);
+	if (!ASSERT_OK_PTR(btf, "empty_layout_btf"))
+		return;
+
+	btf__add_int(btf, "int", 4, BTF_INT_SIGNED);
+	btf__add_ptr(btf, 1);
+	permute_opts.transfer_btf = &transfer_btf;
+	err = btf__permute(btf, permute_ids, ARRAY_SIZE(permute_ids), &permute_opts);
+	if (!ASSERT_OK(err, "btf__permute_layout"))
+		goto cleanup;
+
+	raw = btf__raw_data(btf, &raw_sz);
[Severity: Medium]
Could this missing return check lead to passing a NULL pointer and
uninitialized size to btf__new() if btf__raw_data() fails?
+	parsed = btf__new(raw, raw_sz);
+	if (!ASSERT_OK_PTR(parsed, "parse_permuted_layout"))
+		goto cleanup;
+	btf__free(parsed);
+cleanup:
+	btf__free(transfer_btf);
+	btf__free(btf);
+}
-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260901165757.801449-1-alan.maguire@oracle.com?part=8
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help