mirror of https://gitee.com/openkylin/linux.git
xdp: Clear grow memory in bpf_xdp_adjust_tail()
Clearing memory of tail when grow happens, because it is too easy to write a XDP_PASS program that extend the tail, which expose this memory to users that can run tcpdump. Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Toke Høiland-Jørgensen <toke@redhat.com> Link: https://lore.kernel.org/bpf/158945349039.97035.5262100484553494.stgit@firesoul
This commit is contained in:
parent
c8741e2bfe
commit
ddb47d518c
|
@ -3427,6 +3427,10 @@ BPF_CALL_2(bpf_xdp_adjust_tail, struct xdp_buff *, xdp, int, offset)
|
|||
if (unlikely(data_end < xdp->data + ETH_HLEN))
|
||||
return -EINVAL;
|
||||
|
||||
/* Clear memory area on grow, can contain uninit kernel memory */
|
||||
if (offset > 0)
|
||||
memset(xdp->data_end, 0, offset);
|
||||
|
||||
xdp->data_end = data_end;
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue