[PATCH bpf 0/2] Fix partial copy of non-linear skb test_run output
From: Sun Jian
Date: Mon Jun 15 2026 - 03:39:55 EST
This series fixes BPF_PROG_TEST_RUN copy-out handling for non-linear skbs
when userspace provides a short data_out buffer.
Patch 1 fixes bpf_test_finish() to compute the skb linear head copy length
from the skb layout instead of deriving it from the clamped copy size.
Patch 2 adds a selftest covering a non-linear skb with a short data_out
buffer. The test checks that test_run returns -ENOSPC, reports the full
packet length through data_size_out, and copies the packet prefix into
data_out.
Tested with:
./test_progs -t skb_load_bytes
Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED
./test_progs -t skb_load_bytes -v
test_nonlinear_data_out_partial:PASS:nonlinear_partial_err
test_nonlinear_data_out_partial:PASS:nonlinear_partial_data_size_out
test_nonlinear_data_out_partial:PASS:nonlinear_partial_data_out
Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED
./test_progs -t skb
Summary: 14/92 PASSED, 0 SKIPPED, 0 FAILED
Sun Jian (2):
bpf: Fix partial copy of non-linear skb test_run output
selftests/bpf: Cover partial copy of non-linear skb test_run output
net/bpf/test_run.c | 11 +++---
.../selftests/bpf/prog_tests/skb_load_bytes.c | 35 +++++++++++++++++++
2 files changed, 39 insertions(+), 7 deletions(-)
--
2.43.0