diff options
author | Nikita V. Shirokov <tehnerd@tehnerd.com> | 2018-04-17 21:42:21 -0700 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2018-04-18 23:34:16 +0200 |
commit | 587b80cce95b8aab89e5e35033953c005dc47f01 (patch) | |
tree | 838d51861726d8fc0f9e793fd35c638ddefec288 /net/bpf | |
parent | 6870de435b90c083ae0f3f7f341287976ef56f03 (diff) | |
download | linux-587b80cce95b8aab89e5e35033953c005dc47f01.tar.gz linux-587b80cce95b8aab89e5e35033953c005dc47f01.tar.bz2 linux-587b80cce95b8aab89e5e35033953c005dc47f01.zip |
bpf: making bpf_prog_test run aware of possible data_end ptr change
after introduction of bpf_xdp_adjust_tail helper packet length
could be changed not only if xdp->data pointer has been changed
but xdp->data_end as well. making bpf_prog_test_run aware of this
possibility
Signed-off-by: Nikita V. Shirokov <tehnerd@tehnerd.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'net/bpf')
-rw-r--r-- | net/bpf/test_run.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bpf/test_run.c b/net/bpf/test_run.c index 2ced48662c1f..68c3578343b4 100644 --- a/net/bpf/test_run.c +++ b/net/bpf/test_run.c @@ -170,7 +170,8 @@ int bpf_prog_test_run_xdp(struct bpf_prog *prog, const union bpf_attr *kattr, xdp.rxq = &rxqueue->xdp_rxq; retval = bpf_test_run(prog, &xdp, repeat, &duration); - if (xdp.data != data + XDP_PACKET_HEADROOM + NET_IP_ALIGN) + if (xdp.data != data + XDP_PACKET_HEADROOM + NET_IP_ALIGN || + xdp.data_end != xdp.data + size) size = xdp.data_end - xdp.data; ret = bpf_test_finish(kattr, uattr, xdp.data, size, retval, duration); kfree(data); |