selftests/bpf: Test narrow load from bpf_sysctl.write
There are tests for full and narrows loads from bpf_sysctl.file_pos, but for bpf_sysctl.write only full load is tested. Add the missing test. Suggested-by: Andrey Ignatov <rdna@fb.com> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Andrey Ignatov <rdna@fb.com> Link: https://lore.kernel.org/bpf/20191029143027.28681-1-iii@linux.ibm.com
This commit is contained in:
parent
15ab09bdca
commit
9ffccb7606
|
@ -120,6 +120,29 @@ static struct sysctl_test tests[] = {
|
||||||
.newval = "(none)", /* same as default, should fail anyway */
|
.newval = "(none)", /* same as default, should fail anyway */
|
||||||
.result = OP_EPERM,
|
.result = OP_EPERM,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.descr = "ctx:write sysctl:write read ok narrow",
|
||||||
|
.insns = {
|
||||||
|
/* u64 w = (u16)write & 1; */
|
||||||
|
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||||
|
BPF_LDX_MEM(BPF_H, BPF_REG_7, BPF_REG_1,
|
||||||
|
offsetof(struct bpf_sysctl, write)),
|
||||||
|
#else
|
||||||
|
BPF_LDX_MEM(BPF_H, BPF_REG_7, BPF_REG_1,
|
||||||
|
offsetof(struct bpf_sysctl, write) + 2),
|
||||||
|
#endif
|
||||||
|
BPF_ALU64_IMM(BPF_AND, BPF_REG_7, 1),
|
||||||
|
/* return 1 - w; */
|
||||||
|
BPF_MOV64_IMM(BPF_REG_0, 1),
|
||||||
|
BPF_ALU64_REG(BPF_SUB, BPF_REG_0, BPF_REG_7),
|
||||||
|
BPF_EXIT_INSN(),
|
||||||
|
},
|
||||||
|
.attach_type = BPF_CGROUP_SYSCTL,
|
||||||
|
.sysctl = "kernel/domainname",
|
||||||
|
.open_flags = O_WRONLY,
|
||||||
|
.newval = "(none)", /* same as default, should fail anyway */
|
||||||
|
.result = OP_EPERM,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.descr = "ctx:write sysctl:read write reject",
|
.descr = "ctx:write sysctl:read write reject",
|
||||||
.insns = {
|
.insns = {
|
||||||
|
|
Loading…
Reference in New Issue