selftests/bpf: Add a test for ptr_to_map_value on stack for helper access
commit b4b638c36b7e7acd847b9c4b9c80f268e45ea30c upstream Change bpf_iter_task.c such that pointer to map_value may appear on the stack for bpf_seq_printf() to access. Without previous verifier patch, the bpf_iter test will fail. Signed-off-by: Yonghong Song <yhs@fb.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Song Liu <songliubraving@fb.com> Link: https://lore.kernel.org/bpf/20201210013350.943985-1-yhs@fb.com Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
e2b7a4ccbf
commit
83bbf953f6
@@ -11,9 +11,10 @@ int dump_task(struct bpf_iter__task *ctx)
|
|||||||
{
|
{
|
||||||
struct seq_file *seq = ctx->meta->seq;
|
struct seq_file *seq = ctx->meta->seq;
|
||||||
struct task_struct *task = ctx->task;
|
struct task_struct *task = ctx->task;
|
||||||
|
static char info[] = " === END ===";
|
||||||
|
|
||||||
if (task == (void *)0) {
|
if (task == (void *)0) {
|
||||||
BPF_SEQ_PRINTF(seq, " === END ===\n");
|
BPF_SEQ_PRINTF(seq, "%s\n", info);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -108,8 +108,9 @@
|
|||||||
BPF_EXIT_INSN(),
|
BPF_EXIT_INSN(),
|
||||||
},
|
},
|
||||||
.fixup_map_hash_8b = { 3 },
|
.fixup_map_hash_8b = { 3 },
|
||||||
.errstr = "invalid indirect read from stack off -8+0 size 8",
|
.errstr_unpriv = "invalid indirect read from stack off -8+0 size 8",
|
||||||
.result = REJECT,
|
.result_unpriv = REJECT,
|
||||||
|
.result = ACCEPT,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"unpriv: mangle pointer on stack 1",
|
"unpriv: mangle pointer on stack 1",
|
||||||
|
Reference in New Issue
Block a user