brintos

brintos / linux-shallow public Read only

0
0
Text · 3.3 KiB · 32e5e77 Raw
163 lines · c
1// SPDX-License-Identifier: GPL-2.02 3#include <linux/bpf.h>4#include <bpf/bpf_helpers.h>5#include "bpf_misc.h"6 7SEC("lsm/file_alloc_security")8__description("lsm bpf prog with -4095~0 retval. test 1")9__success10__naked int errno_zero_retval_test1(void *ctx)11{12	asm volatile (13	"r0 = 0;"14	"exit;"15	::: __clobber_all);16}17 18SEC("lsm/file_alloc_security")19__description("lsm bpf prog with -4095~0 retval. test 2")20__success21__naked int errno_zero_retval_test2(void *ctx)22{23	asm volatile (24	"r0 = -4095;"25	"exit;"26	::: __clobber_all);27}28 29SEC("lsm/file_mprotect")30__description("lsm bpf prog with -4095~0 retval. test 4")31__failure __msg("R0 has smin=-4096 smax=-4096 should have been in [-4095, 0]")32__naked int errno_zero_retval_test4(void *ctx)33{34	asm volatile (35	"r0 = -4096;"36	"exit;"37	::: __clobber_all);38}39 40SEC("lsm/file_mprotect")41__description("lsm bpf prog with -4095~0 retval. test 5")42__failure __msg("R0 has smin=4096 smax=4096 should have been in [-4095, 0]")43__naked int errno_zero_retval_test5(void *ctx)44{45	asm volatile (46	"r0 = 4096;"47	"exit;"48	::: __clobber_all);49}50 51SEC("lsm/file_mprotect")52__description("lsm bpf prog with -4095~0 retval. test 6")53__failure __msg("R0 has smin=1 smax=1 should have been in [-4095, 0]")54__naked int errno_zero_retval_test6(void *ctx)55{56	asm volatile (57	"r0 = 1;"58	"exit;"59	::: __clobber_all);60}61 62SEC("lsm/audit_rule_known")63__description("lsm bpf prog with bool retval. test 1")64__success65__naked int bool_retval_test1(void *ctx)66{67	asm volatile (68	"r0 = 1;"69	"exit;"70	::: __clobber_all);71}72 73SEC("lsm/audit_rule_known")74__description("lsm bpf prog with bool retval. test 2")75__success76__success77__naked int bool_retval_test2(void *ctx)78{79	asm volatile (80	"r0 = 0;"81	"exit;"82	::: __clobber_all);83}84 85SEC("lsm/audit_rule_known")86__description("lsm bpf prog with bool retval. test 3")87__failure __msg("R0 has smin=-1 smax=-1 should have been in [0, 1]")88__naked int bool_retval_test3(void *ctx)89{90	asm volatile (91	"r0 = -1;"92	"exit;"93	::: __clobber_all);94}95 96SEC("lsm/audit_rule_known")97__description("lsm bpf prog with bool retval. test 4")98__failure __msg("R0 has smin=2 smax=2 should have been in [0, 1]")99__naked int bool_retval_test4(void *ctx)100{101	asm volatile (102	"r0 = 2;"103	"exit;"104	::: __clobber_all);105}106 107SEC("lsm/file_free_security")108__success109__description("lsm bpf prog with void retval. test 1")110__naked int void_retval_test1(void *ctx)111{112	asm volatile (113	"r0 = -4096;"114	"exit;"115	::: __clobber_all);116}117 118SEC("lsm/file_free_security")119__success120__description("lsm bpf prog with void retval. test 2")121__naked int void_retval_test2(void *ctx)122{123	asm volatile (124	"r0 = 4096;"125	"exit;"126	::: __clobber_all);127}128 129SEC("lsm/getprocattr")130__description("lsm disabled hook: getprocattr")131__failure __msg("points to disabled hook")132__naked int disabled_hook_test1(void *ctx)133{134	asm volatile (135	"r0 = 0;"136	"exit;"137	::: __clobber_all);138}139 140SEC("lsm/setprocattr")141__description("lsm disabled hook: setprocattr")142__failure __msg("points to disabled hook")143__naked int disabled_hook_test2(void *ctx)144{145	asm volatile (146	"r0 = 0;"147	"exit;"148	::: __clobber_all);149}150 151SEC("lsm/ismaclabel")152__description("lsm disabled hook: ismaclabel")153__failure __msg("points to disabled hook")154__naked int disabled_hook_test3(void *ctx)155{156	asm volatile (157	"r0 = 0;"158	"exit;"159	::: __clobber_all);160}161 162char _license[] SEC("license") = "GPL";163