bpf: Explicitly memset some bpf info structures declared on the stack
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 20 Mar 2020 16:22:58 +0000 (17:22 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Apr 2020 13:11:01 +0000 (15:11 +0200)
commit877f28596da26273227897605966b8e631d2a420
treec868c749cdc4935cb69ca06c638e12dc55c84c95
parente92528a8984e613afead703947282f069bd8b240
bpf: Explicitly memset some bpf info structures declared on the stack

commit 5c6f25887963f15492b604dd25cb149c501bbabf upstream.

Trying to initialize a structure with "= {};" will not always clean out
all padding locations in a structure. So be explicit and call memset to
initialize everything for a number of bpf information structures that
are then copied from userspace, sometimes from smaller memory locations
than the size of the structure.

Reported-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20200320162258.GA794295@kroah.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/bpf/btf.c
kernel/bpf/syscall.c