bpf: Explicitly memset some bpf info structures declared on the stack
commit638d8c748e9d8f14a1574202fd754f90dbce28c1
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 20 Mar 2020 16:22:58 +0000 (20 17:22 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Apr 2020 13:28:23 +0000 (2 15:28 +0200)
treed6a84dbbddc162bd717b5529e6d2d92310534344
parentaca6a9b0985b9cde317558b5bbd6e883d96f0560
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