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