android_kernel_oneplus_msm8998/kernel/bpf
Alexei Starovoitov e8e4323262 bpf: avoid copying junk bytes in bpf_get_current_comm()
[ Upstream commit cdc4e47da8f4c32eeb6b2061a8a834f4362a12b7 ]

Lots of places in the kernel use memcpy(buf, comm, TASK_COMM_LEN); but
the result is typically passed to print("%s", buf) and extra bytes
after zero don't cause any harm.
In bpf the result of bpf_get_current_comm() is used as the part of
map key and was causing spurious hash map mismatches.
Use strlcpy() to guarantee zero-terminated string.
bpf verifier checks that output buffer is zero-initialized,
so even for short task names the output buffer don't have junk bytes.
Note it's not a security concern, since kprobe+bpf is root only.

Fixes: ffeedafbf0 ("bpf: introduce current->pid, tgid, uid, gid, comm accessors")
Reported-by: Tobias Waldekranz <tobias@waldekranz.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-04-20 15:42:01 +09:00
..
arraymap.c bpf: fix allocation warnings in bpf maps and integer overflow 2015-12-02 23:36:00 -05:00
core.c bpf: consolidate bpf_prog_put{, _rcu} dismantle paths 2015-11-02 22:48:39 -05:00
hashtab.c bpf: fix allocation warnings in bpf maps and integer overflow 2015-12-02 23:36:00 -05:00
helpers.c bpf: avoid copying junk bytes in bpf_get_current_comm() 2016-04-20 15:42:01 +09:00
inode.c bpf: fix clearing on persistent program array maps 2015-11-25 12:14:09 -05:00
Makefile bpf: add support for persistent maps/progs 2015-11-02 22:48:39 -05:00
syscall.c bpf: fix allocation warnings in bpf maps and integer overflow 2015-12-02 23:36:00 -05:00
verifier.c bpf: fix branch offset adjustment on backjumps after patching ctx expansion 2016-03-03 15:07:06 -08:00