diff options
author | Daniel Borkmann <daniel@iogearbox.net> | 2018-06-02 23:06:37 +0200 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2018-06-03 07:46:55 -0700 |
commit | 1fbc2e0cfcf9677683aea2b1f9ea76fbdc6fb6d1 (patch) | |
tree | 6e59f51bb75c719968536dabb35e6ababf68bff8 /tools/bpf | |
parent | cb20b08ead401fd17627a36f035c0bf5bfee5567 (diff) | |
download | linux-stable-1fbc2e0cfcf9677683aea2b1f9ea76fbdc6fb6d1.tar.gz linux-stable-1fbc2e0cfcf9677683aea2b1f9ea76fbdc6fb6d1.tar.bz2 linux-stable-1fbc2e0cfcf9677683aea2b1f9ea76fbdc6fb6d1.zip |
bpf: make sure to clear unused fields in tunnel/xfrm state fetch
Since the remaining bits are not filled in struct bpf_tunnel_key
resp. struct bpf_xfrm_state and originate from uninitialized stack
space, we should make sure to clear them before handing control
back to the program.
Also add a padding element to struct bpf_xfrm_state for future use
similar as we have in struct bpf_tunnel_key and clear it as well.
struct bpf_xfrm_state {
__u32 reqid; /* 0 4 */
__u32 spi; /* 4 4 */
__u16 family; /* 8 2 */
/* XXX 2 bytes hole, try to pack */
union {
__u32 remote_ipv4; /* 4 */
__u32 remote_ipv6[4]; /* 16 */
}; /* 12 16 */
/* size: 28, cachelines: 1, members: 4 */
/* sum members: 26, holes: 1, sum holes: 2 */
/* last cacheline: 28 bytes */
};
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/bpf')
0 files changed, 0 insertions, 0 deletions