forked from luck/tmp_suning_uos_patched
bpf: Remove bpf_dump_raw_ok() check for func_info and line_info
The func_info and line_info have the bpf insn offset but
they do not contain kernel address. They will still be useful
for the userspace tool to annotate the xlated insn.
This patch removes the bpf_dump_raw_ok() guard for the
func_info and line_info during bpf_prog_get_info_by_fd().
The guard stays for jited_line_info which contains the kernel
address.
Although this bpf_dump_raw_ok() guard behavior has started since
the earlier func_info patch series, I marked the Fixes tag to the
latest line_info patch series which contains both func_info and
line_info and this patch is fixing for both of them.
Fixes: c454a46b5e
("bpf: Add bpf_line_info support")
Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
parent
00842be52f
commit
9e794163a6
|
@ -2272,33 +2272,25 @@ static int bpf_prog_get_info_by_fd(struct bpf_prog *prog,
|
|||
ulen = info.nr_func_info;
|
||||
info.nr_func_info = prog->aux->func_info_cnt;
|
||||
if (info.nr_func_info && ulen) {
|
||||
if (bpf_dump_raw_ok()) {
|
||||
char __user *user_finfo;
|
||||
char __user *user_finfo;
|
||||
|
||||
user_finfo = u64_to_user_ptr(info.func_info);
|
||||
ulen = min_t(u32, info.nr_func_info, ulen);
|
||||
if (copy_to_user(user_finfo, prog->aux->func_info,
|
||||
info.func_info_rec_size * ulen))
|
||||
return -EFAULT;
|
||||
} else {
|
||||
info.func_info = 0;
|
||||
}
|
||||
user_finfo = u64_to_user_ptr(info.func_info);
|
||||
ulen = min_t(u32, info.nr_func_info, ulen);
|
||||
if (copy_to_user(user_finfo, prog->aux->func_info,
|
||||
info.func_info_rec_size * ulen))
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
ulen = info.nr_line_info;
|
||||
info.nr_line_info = prog->aux->nr_linfo;
|
||||
if (info.nr_line_info && ulen) {
|
||||
if (bpf_dump_raw_ok()) {
|
||||
__u8 __user *user_linfo;
|
||||
__u8 __user *user_linfo;
|
||||
|
||||
user_linfo = u64_to_user_ptr(info.line_info);
|
||||
ulen = min_t(u32, info.nr_line_info, ulen);
|
||||
if (copy_to_user(user_linfo, prog->aux->linfo,
|
||||
info.line_info_rec_size * ulen))
|
||||
return -EFAULT;
|
||||
} else {
|
||||
info.line_info = 0;
|
||||
}
|
||||
user_linfo = u64_to_user_ptr(info.line_info);
|
||||
ulen = min_t(u32, info.nr_line_info, ulen);
|
||||
if (copy_to_user(user_linfo, prog->aux->linfo,
|
||||
info.line_info_rec_size * ulen))
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
ulen = info.nr_jited_line_info;
|
||||
|
|
Loading…
Reference in New Issue
Block a user