diff options
author | Daniel Borkmann <daniel@iogearbox.net> | 2019-12-17 13:28:16 +0100 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2019-12-17 08:58:02 -0800 |
commit | e47304232b373362228bf233f17bd12b11c9aafc (patch) | |
tree | b08fea42367c08dec3f9190689f0a6c84dd84068 /net/core | |
parent | a2ea07465c8d7984cc6b8b1f0b3324f9b138094a (diff) | |
download | linux-e47304232b373362228bf233f17bd12b11c9aafc.tar.bz2 |
bpf: Fix cgroup local storage prog tracking
Recently noticed that we're tracking programs related to local storage maps
through their prog pointer. This is a wrong assumption since the prog pointer
can still change throughout the verification process, for example, whenever
bpf_patch_insn_single() is called.
Therefore, the prog pointer that was assigned via bpf_cgroup_storage_assign()
is not guaranteed to be the same as we pass in bpf_cgroup_storage_release()
and the map would therefore remain in busy state forever. Fix this by using
the prog's aux pointer which is stable throughout verification and beyond.
Fixes: de9cbbaadba5 ("bpf: introduce cgroup storage maps")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Cc: Roman Gushchin <guro@fb.com>
Cc: Martin KaFai Lau <kafai@fb.com>
Link: https://lore.kernel.org/bpf/1471c69eca3022218666f909bc927a92388fd09e.1576580332.git.daniel@iogearbox.net
Diffstat (limited to 'net/core')
0 files changed, 0 insertions, 0 deletions