xref: /aosp_15_r20/external/selinux/secilc/test/bounds.cil (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
1*2d543d20SAndroid Build Coastguard Worker(class CLASS (PERM))
2*2d543d20SAndroid Build Coastguard Worker(classorder (CLASS))
3*2d543d20SAndroid Build Coastguard Worker(sid SID)
4*2d543d20SAndroid Build Coastguard Worker(sidorder (SID))
5*2d543d20SAndroid Build Coastguard Worker(user USER)
6*2d543d20SAndroid Build Coastguard Worker(role ROLE)
7*2d543d20SAndroid Build Coastguard Worker(type TYPE)
8*2d543d20SAndroid Build Coastguard Worker(category CAT)
9*2d543d20SAndroid Build Coastguard Worker(categoryorder (CAT))
10*2d543d20SAndroid Build Coastguard Worker(sensitivity SENS)
11*2d543d20SAndroid Build Coastguard Worker(sensitivityorder (SENS))
12*2d543d20SAndroid Build Coastguard Worker(sensitivitycategory SENS (CAT))
13*2d543d20SAndroid Build Coastguard Worker(allow TYPE self (CLASS (PERM)))
14*2d543d20SAndroid Build Coastguard Worker(roletype ROLE TYPE)
15*2d543d20SAndroid Build Coastguard Worker(userrole USER ROLE)
16*2d543d20SAndroid Build Coastguard Worker(userlevel USER (SENS))
17*2d543d20SAndroid Build Coastguard Worker(userrange USER ((SENS)(SENS (CAT))))
18*2d543d20SAndroid Build Coastguard Worker(sidcontext SID (USER ROLE TYPE ((SENS)(SENS))))
19*2d543d20SAndroid Build Coastguard Worker
20*2d543d20SAndroid Build Coastguard Worker(class c1 (p1a p1b p1c))
21*2d543d20SAndroid Build Coastguard Worker(class c2 (p2a p2b p2c))
22*2d543d20SAndroid Build Coastguard Worker(class c3 (p3a p3b p3c))
23*2d543d20SAndroid Build Coastguard Worker
24*2d543d20SAndroid Build Coastguard Worker(classorder (CLASS c1 c2 c3))
25*2d543d20SAndroid Build Coastguard Worker
26*2d543d20SAndroid Build Coastguard Worker(classpermission cp1)
27*2d543d20SAndroid Build Coastguard Worker(classpermissionset cp1 (c1 (p1a p1b)))
28*2d543d20SAndroid Build Coastguard Worker(classpermissionset cp1 (c2 (p2a)))
29*2d543d20SAndroid Build Coastguard Worker
30*2d543d20SAndroid Build Coastguard Worker(classmap cm1 (mp1))
31*2d543d20SAndroid Build Coastguard Worker(classmapping cm1 mp1
32*2d543d20SAndroid Build Coastguard Worker	      (c1 (p1a)))
33*2d543d20SAndroid Build Coastguard Worker
34*2d543d20SAndroid Build Coastguard Worker(boolean b_b1 false)
35*2d543d20SAndroid Build Coastguard Worker(boolean b_b2 false)
36*2d543d20SAndroid Build Coastguard Worker(boolean b_b3 false)
37*2d543d20SAndroid Build Coastguard Worker
38*2d543d20SAndroid Build Coastguard Worker
39*2d543d20SAndroid Build Coastguard Worker(type b_ta)
40*2d543d20SAndroid Build Coastguard Worker(type b_tb)
41*2d543d20SAndroid Build Coastguard Worker(type b_tc)
42*2d543d20SAndroid Build Coastguard Worker(type b_td)
43*2d543d20SAndroid Build Coastguard Worker
44*2d543d20SAndroid Build Coastguard Worker
45*2d543d20SAndroid Build Coastguard Worker;; All of these rules should pass the bounds check
46*2d543d20SAndroid Build Coastguard Worker(type b_t1)
47*2d543d20SAndroid Build Coastguard Worker(type b_t1_c)
48*2d543d20SAndroid Build Coastguard Worker(typebounds b_t1 b_t1_c)
49*2d543d20SAndroid Build Coastguard Worker
50*2d543d20SAndroid Build Coastguard Worker(allow b_t1 self (CLASS (PERM)))
51*2d543d20SAndroid Build Coastguard Worker(allow b_t1_c self (CLASS (PERM)))
52*2d543d20SAndroid Build Coastguard Worker(allow b_t1 b_ta (CLASS (PERM)))
53*2d543d20SAndroid Build Coastguard Worker(allow b_t1_c b_ta (CLASS (PERM)))
54*2d543d20SAndroid Build Coastguard Worker(allow b_ta b_t1 (CLASS (PERM)))
55*2d543d20SAndroid Build Coastguard Worker(allow b_ta b_t1_c (CLASS (PERM)))
56*2d543d20SAndroid Build Coastguard Worker
57*2d543d20SAndroid Build Coastguard Worker(booleanif b_b1
58*2d543d20SAndroid Build Coastguard Worker  (false
59*2d543d20SAndroid Build Coastguard Worker    (allow b_t1 b_tb (CLASS (PERM)))
60*2d543d20SAndroid Build Coastguard Worker    (allow b_t1_c b_tb (CLASS (PERM)))
61*2d543d20SAndroid Build Coastguard Worker    (allow b_tb b_t1 (CLASS (PERM)))
62*2d543d20SAndroid Build Coastguard Worker    (allow b_tb b_t1_c (CLASS (PERM)))))
63*2d543d20SAndroid Build Coastguard Worker
64*2d543d20SAndroid Build Coastguard Worker(allow b_t1 b_tc (CLASS (PERM)))
65*2d543d20SAndroid Build Coastguard Worker(allow b_tc b_t1 (CLASS (PERM)))
66*2d543d20SAndroid Build Coastguard Worker(booleanif b_b2
67*2d543d20SAndroid Build Coastguard Worker  (false
68*2d543d20SAndroid Build Coastguard Worker    (allow b_t1_c b_tc (CLASS (PERM)))
69*2d543d20SAndroid Build Coastguard Worker    (allow b_tc b_t1_c (CLASS (PERM)))))
70*2d543d20SAndroid Build Coastguard Worker
71*2d543d20SAndroid Build Coastguard Worker(allow b_t1_c b_td (CLASS (PERM)))
72*2d543d20SAndroid Build Coastguard Worker(allow b_td b_t1_c (CLASS (PERM)))
73*2d543d20SAndroid Build Coastguard Worker(booleanif b_b3
74*2d543d20SAndroid Build Coastguard Worker  (true
75*2d543d20SAndroid Build Coastguard Worker    (allow b_t1 b_td (CLASS (PERM)))
76*2d543d20SAndroid Build Coastguard Worker    (allow b_td b_t1 (CLASS (PERM))))
77*2d543d20SAndroid Build Coastguard Worker  (false
78*2d543d20SAndroid Build Coastguard Worker    (allow b_t1 b_td (CLASS (PERM)))
79*2d543d20SAndroid Build Coastguard Worker    (allow b_td b_t1 (CLASS (PERM)))))
80*2d543d20SAndroid Build Coastguard Worker
81*2d543d20SAndroid Build Coastguard Worker
82*2d543d20SAndroid Build Coastguard Worker;; All of these rules should pass the bounds check
83*2d543d20SAndroid Build Coastguard Worker(type b_t2)
84*2d543d20SAndroid Build Coastguard Worker(type b_t2_c)
85*2d543d20SAndroid Build Coastguard Worker(typebounds b_t2 b_t2_c)
86*2d543d20SAndroid Build Coastguard Worker(typeattribute b_a2)
87*2d543d20SAndroid Build Coastguard Worker(typeattribute b_a2_c)
88*2d543d20SAndroid Build Coastguard Worker(typeattributeset b_a2 b_t2)
89*2d543d20SAndroid Build Coastguard Worker(typeattributeset b_a2_c b_t2_c)
90*2d543d20SAndroid Build Coastguard Worker
91*2d543d20SAndroid Build Coastguard Worker(allow b_a2 self (CLASS (PERM)))
92*2d543d20SAndroid Build Coastguard Worker(allow b_a2_c self (CLASS (PERM)))
93*2d543d20SAndroid Build Coastguard Worker(allow b_a2 b_ta (CLASS (PERM)))
94*2d543d20SAndroid Build Coastguard Worker(allow b_a2_c b_ta (CLASS (PERM)))
95*2d543d20SAndroid Build Coastguard Worker(allow b_ta b_a2 (CLASS (PERM)))
96*2d543d20SAndroid Build Coastguard Worker(allow b_ta b_a2_c (CLASS (PERM)))
97*2d543d20SAndroid Build Coastguard Worker
98*2d543d20SAndroid Build Coastguard Worker(booleanif b_b1
99*2d543d20SAndroid Build Coastguard Worker  (false
100*2d543d20SAndroid Build Coastguard Worker    (allow b_a2 b_tb (CLASS (PERM)))
101*2d543d20SAndroid Build Coastguard Worker    (allow b_a2_c b_tb (CLASS (PERM)))
102*2d543d20SAndroid Build Coastguard Worker    (allow b_tb b_a2 (CLASS (PERM)))
103*2d543d20SAndroid Build Coastguard Worker    (allow b_tb b_a2_c (CLASS (PERM)))))
104*2d543d20SAndroid Build Coastguard Worker
105*2d543d20SAndroid Build Coastguard Worker(allow b_a2 b_tc (CLASS (PERM)))
106*2d543d20SAndroid Build Coastguard Worker(allow b_tc b_a2 (CLASS (PERM)))
107*2d543d20SAndroid Build Coastguard Worker(booleanif b_b2
108*2d543d20SAndroid Build Coastguard Worker  (false
109*2d543d20SAndroid Build Coastguard Worker    (allow b_a2_c b_tc (CLASS (PERM)))
110*2d543d20SAndroid Build Coastguard Worker    (allow b_tc b_a2_c (CLASS (PERM)))))
111*2d543d20SAndroid Build Coastguard Worker
112*2d543d20SAndroid Build Coastguard Worker(allow b_a2_c b_td (CLASS (PERM)))
113*2d543d20SAndroid Build Coastguard Worker(allow b_td b_a2_c (CLASS (PERM)))
114*2d543d20SAndroid Build Coastguard Worker(booleanif b_b3
115*2d543d20SAndroid Build Coastguard Worker  (true
116*2d543d20SAndroid Build Coastguard Worker    (allow b_a2 b_td (CLASS (PERM)))
117*2d543d20SAndroid Build Coastguard Worker    (allow b_td b_a2 (CLASS (PERM))))
118*2d543d20SAndroid Build Coastguard Worker  (false
119*2d543d20SAndroid Build Coastguard Worker    (allow b_a2 b_td (CLASS (PERM)))
120*2d543d20SAndroid Build Coastguard Worker    (allow b_td b_a2 (CLASS (PERM)))))
121*2d543d20SAndroid Build Coastguard Worker
122*2d543d20SAndroid Build Coastguard Worker
123*2d543d20SAndroid Build Coastguard Worker;; All of these rules should fail the bounds check
124*2d543d20SAndroid Build Coastguard Worker(type b_t3)
125*2d543d20SAndroid Build Coastguard Worker(type b_t3_c)
126*2d543d20SAndroid Build Coastguard Worker(typebounds b_t3 b_t3_c)
127*2d543d20SAndroid Build Coastguard Worker
128*2d543d20SAndroid Build Coastguard Worker(allow b_t3 self (CLASS (PERM)))
129*2d543d20SAndroid Build Coastguard Worker(allow b_t3_c self (c1 (p1a)))
130*2d543d20SAndroid Build Coastguard Worker(allow b_t3 b_ta (CLASS (PERM)))
131*2d543d20SAndroid Build Coastguard Worker(allow b_t3_c b_ta (c1 (p1a)))
132*2d543d20SAndroid Build Coastguard Worker(allow b_ta b_t3 (CLASS (PERM)))
133*2d543d20SAndroid Build Coastguard Worker(allow b_ta b_t3_c (c1 (p1a)))
134*2d543d20SAndroid Build Coastguard Worker
135*2d543d20SAndroid Build Coastguard Worker(booleanif b_b1
136*2d543d20SAndroid Build Coastguard Worker  (false
137*2d543d20SAndroid Build Coastguard Worker    (allow b_t3_c b_tb (c1 (p1a)))
138*2d543d20SAndroid Build Coastguard Worker    (allow b_tb b_t3_c (c1 (p1a)))))
139*2d543d20SAndroid Build Coastguard Worker
140*2d543d20SAndroid Build Coastguard Worker(booleanif b_b2
141*2d543d20SAndroid Build Coastguard Worker  (true
142*2d543d20SAndroid Build Coastguard Worker    (allow b_t3_c b_tc (c1 (p1a)))
143*2d543d20SAndroid Build Coastguard Worker    (allow b_tc b_t3_c (c1 (p1a))))
144*2d543d20SAndroid Build Coastguard Worker  (false
145*2d543d20SAndroid Build Coastguard Worker    (allow b_t3 b_tc (c1 (p1a)))
146*2d543d20SAndroid Build Coastguard Worker    (allow b_tc b_t3 (c1 (p1a)))))
147*2d543d20SAndroid Build Coastguard Worker
148*2d543d20SAndroid Build Coastguard Worker(allow b_t3_c b_td (c1 (p1a)))
149*2d543d20SAndroid Build Coastguard Worker(allow b_td b_t3_c (c1 (p1a)))
150*2d543d20SAndroid Build Coastguard Worker(booleanif b_b3
151*2d543d20SAndroid Build Coastguard Worker  (false
152*2d543d20SAndroid Build Coastguard Worker    (allow b_t3 b_td (c1 (p1a)))
153*2d543d20SAndroid Build Coastguard Worker    (allow b_td b_t3 (c1 (p1a)))))
154*2d543d20SAndroid Build Coastguard Worker
155*2d543d20SAndroid Build Coastguard Worker
156*2d543d20SAndroid Build Coastguard Worker;; All of these rules should fail the bounds check
157*2d543d20SAndroid Build Coastguard Worker(type b_t4)
158*2d543d20SAndroid Build Coastguard Worker(type b_t4_c)
159*2d543d20SAndroid Build Coastguard Worker(typebounds b_t4 b_t4_c)
160*2d543d20SAndroid Build Coastguard Worker(typeattribute b_a4)
161*2d543d20SAndroid Build Coastguard Worker(typeattribute b_a4_c)
162*2d543d20SAndroid Build Coastguard Worker(typeattributeset b_a4 b_t4)
163*2d543d20SAndroid Build Coastguard Worker(typeattributeset b_a4_c b_t4_c)
164*2d543d20SAndroid Build Coastguard Worker
165*2d543d20SAndroid Build Coastguard Worker(allow b_a4 self (CLASS (PERM)))
166*2d543d20SAndroid Build Coastguard Worker(allow b_a4_c self (c1 (p1a)))
167*2d543d20SAndroid Build Coastguard Worker(allow b_a4 b_ta (CLASS (PERM)))
168*2d543d20SAndroid Build Coastguard Worker(allow b_a4_c b_ta (c1 (p1a)))
169*2d543d20SAndroid Build Coastguard Worker(allow b_ta b_a4 (CLASS (PERM)))
170*2d543d20SAndroid Build Coastguard Worker(allow b_ta b_a4_c (c1 (p1a)))
171*2d543d20SAndroid Build Coastguard Worker
172*2d543d20SAndroid Build Coastguard Worker(booleanif b_b1
173*2d543d20SAndroid Build Coastguard Worker  (false
174*2d543d20SAndroid Build Coastguard Worker    (allow b_a4_c b_tb (c1 (p1a)))
175*2d543d20SAndroid Build Coastguard Worker    (allow b_tb b_a4_c (c1 (p1a)))))
176*2d543d20SAndroid Build Coastguard Worker
177*2d543d20SAndroid Build Coastguard Worker(booleanif b_b2
178*2d543d20SAndroid Build Coastguard Worker  (true
179*2d543d20SAndroid Build Coastguard Worker    (allow b_a4_c b_tc (c1 (p1a)))
180*2d543d20SAndroid Build Coastguard Worker    (allow b_tc b_a4_c (c1 (p1a))))
181*2d543d20SAndroid Build Coastguard Worker  (false
182*2d543d20SAndroid Build Coastguard Worker    (allow b_a4 b_tc (c1 (p1a)))
183*2d543d20SAndroid Build Coastguard Worker    (allow b_tc b_a4 (c1 (p1a)))))
184*2d543d20SAndroid Build Coastguard Worker
185*2d543d20SAndroid Build Coastguard Worker(allow b_a4_c b_td (c1 (p1a)))
186*2d543d20SAndroid Build Coastguard Worker(allow b_td b_a4_c (c1 (p1a)))
187*2d543d20SAndroid Build Coastguard Worker(booleanif b_b3
188*2d543d20SAndroid Build Coastguard Worker  (false
189*2d543d20SAndroid Build Coastguard Worker    (allow b_a4 b_td (c1 (p1a)))
190*2d543d20SAndroid Build Coastguard Worker    (allow b_td b_a4 (c1 (p1a)))))
191*2d543d20SAndroid Build Coastguard Worker
192*2d543d20SAndroid Build Coastguard Worker
193*2d543d20SAndroid Build Coastguard Worker;; Marked rules should fail, all others should pass
194*2d543d20SAndroid Build Coastguard Worker(type b_t5)
195*2d543d20SAndroid Build Coastguard Worker(type b_t5_c)
196*2d543d20SAndroid Build Coastguard Worker(typebounds b_t5 b_t5_c)
197*2d543d20SAndroid Build Coastguard Worker
198*2d543d20SAndroid Build Coastguard Worker(allow b_t5 b_ta cp1)
199*2d543d20SAndroid Build Coastguard Worker(allow b_t5_c b_ta (c1 (p1a)))
200*2d543d20SAndroid Build Coastguard Worker(allow b_t5_c b_ta (c2 (p2a)))
201*2d543d20SAndroid Build Coastguard Worker(allow b_t5_c b_ta (c2 (p2b))) ;; Fail
202*2d543d20SAndroid Build Coastguard Worker(allow b_t5_c b_ta (c3 (p3a))) ;; Fail
203*2d543d20SAndroid Build Coastguard Worker
204*2d543d20SAndroid Build Coastguard Worker(allow b_t5 b_tb (c1 (p1a p1b)))
205*2d543d20SAndroid Build Coastguard Worker(allow b_t5 b_tb (c2 (p2a)))
206*2d543d20SAndroid Build Coastguard Worker(allow b_t5_c b_tb cp1)
207*2d543d20SAndroid Build Coastguard Worker
208*2d543d20SAndroid Build Coastguard Worker(allow b_t5 b_tc (cm1 (mp1)))
209*2d543d20SAndroid Build Coastguard Worker(allow b_t5_c b_tc (c1 (p1a)))
210*2d543d20SAndroid Build Coastguard Worker(allow b_t5_c b_tc (c1 (p1b))) ;; Fail
211*2d543d20SAndroid Build Coastguard Worker(allow b_t5_c b_tc (c2 (p2a))) ;; Fail
212*2d543d20SAndroid Build Coastguard Worker
213*2d543d20SAndroid Build Coastguard Worker(allow b_t5 b_tc (c1 (p1a)))
214*2d543d20SAndroid Build Coastguard Worker(allow b_t5_c b_tc (cm1 (mp1)))
215*2d543d20SAndroid Build Coastguard Worker
216*2d543d20SAndroid Build Coastguard Worker
217*2d543d20SAndroid Build Coastguard Worker;; Marked rules should fail, all others should pass
218*2d543d20SAndroid Build Coastguard Worker(type b_t6a)
219*2d543d20SAndroid Build Coastguard Worker(type b_t6a_c)
220*2d543d20SAndroid Build Coastguard Worker(type b_t6b)
221*2d543d20SAndroid Build Coastguard Worker(type b_t6b_c)
222*2d543d20SAndroid Build Coastguard Worker(typebounds b_t6a b_t6a_c)
223*2d543d20SAndroid Build Coastguard Worker(typebounds b_t6b b_t6b_c)
224*2d543d20SAndroid Build Coastguard Worker
225*2d543d20SAndroid Build Coastguard Worker(allow b_t6a b_t6b (CLASS (PERM)))
226*2d543d20SAndroid Build Coastguard Worker(allow b_t6a_c b_t6b_c (CLASS (PERM)))
227*2d543d20SAndroid Build Coastguard Worker
228*2d543d20SAndroid Build Coastguard Worker;; Needs: (allow b_t6a b_t6b (c1 (p1a)))
229*2d543d20SAndroid Build Coastguard Worker(allow b_t6a_c b_t6b (c1 (p1a))) ;; Fail
230*2d543d20SAndroid Build Coastguard Worker(allow b_t6a_c b_t6b_c (c1 (p1a))) ;; Fail
231*2d543d20SAndroid Build Coastguard Worker
232*2d543d20SAndroid Build Coastguard Worker;; Needs: (allow b_t6a b_t6b (c2 (p2a)))
233*2d543d20SAndroid Build Coastguard Worker(allow b_t6a b_t6b_c (c2 (p2a))) ;; Fail
234*2d543d20SAndroid Build Coastguard Worker(allow b_t6a_c b_t6b (c2 (p2a))) ;; Fail
235*2d543d20SAndroid Build Coastguard Worker(allow b_t6a_c b_t6b_c (c2 (p2a)))
236*2d543d20SAndroid Build Coastguard Worker
237*2d543d20SAndroid Build Coastguard Worker;; Needs: (allow b_t6a b_t6b (c3 (p3c)))
238*2d543d20SAndroid Build Coastguard Worker(allow b_t6a b_t6b (c3 (p3a p3b)))
239*2d543d20SAndroid Build Coastguard Worker(allow b_t6a b_t6b_c (c3 (p3b p3c))) ;; Fail
240*2d543d20SAndroid Build Coastguard Worker(allow b_t6a_c b_t6b (c3 (p3a p3c))) ;; Fail
241*2d543d20SAndroid Build Coastguard Worker(allow b_t6a_c b_t6b_c (c3 (p3a p3b p3c))) ;; Fail
242