bpf: Limit the number of uprobes when attaching program to multiple uprobes
authorHou Tao <houtao1@huawei.com>
Fri, 15 Dec 2023 10:07:04 +0000 (18:07 +0800)
committerDaniel Borkmann <daniel@iogearbox.net>
Fri, 15 Dec 2023 21:54:46 +0000 (22:54 +0100)
commit8b2efe51ba85ca83460941672afac6fca4199df6
tree55651e550cb7ee3f6980a5edd33bf5ff6bf92181
parent7489723c2e26504573dbb49b66bbc59092840008
bpf: Limit the number of uprobes when attaching program to multiple uprobes

An abnormally big cnt may be passed to link_create.uprobe_multi.cnt,
and it will trigger the following warning in kvmalloc_node():

if (unlikely(size > INT_MAX)) {
WARN_ON_ONCE(!(flags & __GFP_NOWARN));
return NULL;
}

Fix the warning by limiting the maximal number of uprobes in
bpf_uprobe_multi_link_attach(). If the number of uprobes is greater than
MAX_UPROBE_MULTI_CNT, the attachment will return -E2BIG.

Fixes: 89ae89f53d20 ("bpf: Add multi uprobe link")
Reported-by: Xingwei Lee <xrivendell7@gmail.com>
Signed-off-by: Hou Tao <houtao1@huawei.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Closes: https://lore.kernel.org/bpf/CABOYnLwwJY=yFAGie59LFsUsBAgHfroVqbzZ5edAXbFE3YiNVA@mail.gmail.com
Link: https://lore.kernel.org/bpf/20231215100708.2265609-2-houtao@huaweicloud.com
kernel/trace/bpf_trace.c