mac_test.c (172953) | mac_test.c (172955) |
---|---|
1/*- 2 * Copyright (c) 1999-2002, 2007 Robert N. M. Watson 3 * Copyright (c) 2001-2005 McAfee, Inc. 4 * Copyright (c) 2006 SPARTA, Inc. 5 * All rights reserved. 6 * 7 * This software was developed by Robert Watson for the TrustedBSD Project. 8 * --- 21 unchanged lines hidden (view full) --- 30 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * | 1/*- 2 * Copyright (c) 1999-2002, 2007 Robert N. M. Watson 3 * Copyright (c) 2001-2005 McAfee, Inc. 4 * Copyright (c) 2006 SPARTA, Inc. 5 * All rights reserved. 6 * 7 * This software was developed by Robert Watson for the TrustedBSD Project. 8 * --- 21 unchanged lines hidden (view full) --- 30 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * |
38 * $FreeBSD: head/sys/security/mac_test/mac_test.c 172953 2007-10-25 07:49:47Z rwatson $ | 38 * $FreeBSD: head/sys/security/mac_test/mac_test.c 172955 2007-10-25 11:31:11Z rwatson $ |
39 */ 40 41/* 42 * Developed by the TrustedBSD Project. 43 * 44 * MAC Test policy - tests MAC Framework labeling by assigning object class 45 * magic numbers to each label and validates that each time an object label 46 * is passed into the policy, it has a consistent object type, catching --- 100 unchanged lines hidden (view full) --- 147 ("%s: destroyed label", __func__)); \ 148} while (0) 149 150/* 151 * Label operations. 152 */ 153COUNTER_DECL(bpfdesc_init_label); 154static void | 39 */ 40 41/* 42 * Developed by the TrustedBSD Project. 43 * 44 * MAC Test policy - tests MAC Framework labeling by assigning object class 45 * magic numbers to each label and validates that each time an object label 46 * is passed into the policy, it has a consistent object type, catching --- 100 unchanged lines hidden (view full) --- 147 ("%s: destroyed label", __func__)); \ 148} while (0) 149 150/* 151 * Label operations. 152 */ 153COUNTER_DECL(bpfdesc_init_label); 154static void |
155mac_test_bpfdesc_init_label(struct label *label) | 155test_bpfdesc_init_label(struct label *label) |
156{ 157 158 LABEL_INIT(label, MAGIC_BPF); 159 COUNTER_INC(bpfdesc_init_label); 160} 161 162COUNTER_DECL(cred_init_label); 163static void | 156{ 157 158 LABEL_INIT(label, MAGIC_BPF); 159 COUNTER_INC(bpfdesc_init_label); 160} 161 162COUNTER_DECL(cred_init_label); 163static void |
164mac_test_cred_init_label(struct label *label) | 164test_cred_init_label(struct label *label) |
165{ 166 167 LABEL_INIT(label, MAGIC_CRED); 168 COUNTER_INC(cred_init_label); 169} 170 171COUNTER_DECL(devfs_init_label); 172static void | 165{ 166 167 LABEL_INIT(label, MAGIC_CRED); 168 COUNTER_INC(cred_init_label); 169} 170 171COUNTER_DECL(devfs_init_label); 172static void |
173mac_test_devfs_init_label(struct label *label) | 173test_devfs_init_label(struct label *label) |
174{ 175 176 LABEL_INIT(label, MAGIC_DEVFS); 177 COUNTER_INC(devfs_init_label); 178} 179 180COUNTER_DECL(ifnet_init_label); 181static void | 174{ 175 176 LABEL_INIT(label, MAGIC_DEVFS); 177 COUNTER_INC(devfs_init_label); 178} 179 180COUNTER_DECL(ifnet_init_label); 181static void |
182mac_test_ifnet_init_label(struct label *label) | 182test_ifnet_init_label(struct label *label) |
183{ 184 185 LABEL_INIT(label, MAGIC_IFNET); 186 COUNTER_INC(ifnet_init_label); 187} 188 189COUNTER_DECL(inpcb_init_label); 190static int | 183{ 184 185 LABEL_INIT(label, MAGIC_IFNET); 186 COUNTER_INC(ifnet_init_label); 187} 188 189COUNTER_DECL(inpcb_init_label); 190static int |
191mac_test_inpcb_init_label(struct label *label, int flag) | 191test_inpcb_init_label(struct label *label, int flag) |
192{ 193 194 if (flag & M_WAITOK) 195 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, | 192{ 193 194 if (flag & M_WAITOK) 195 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, |
196 "mac_test_inpcb_init_label() at %s:%d", __FILE__, | 196 "test_inpcb_init_label() at %s:%d", __FILE__, |
197 __LINE__); 198 199 LABEL_INIT(label, MAGIC_INPCB); 200 COUNTER_INC(inpcb_init_label); 201 return (0); 202} 203 204COUNTER_DECL(sysvmsg_init_label); 205static void | 197 __LINE__); 198 199 LABEL_INIT(label, MAGIC_INPCB); 200 COUNTER_INC(inpcb_init_label); 201 return (0); 202} 203 204COUNTER_DECL(sysvmsg_init_label); 205static void |
206mac_test_sysvmsg_init_label(struct label *label) | 206test_sysvmsg_init_label(struct label *label) |
207{ 208 LABEL_INIT(label, MAGIC_SYSV_MSG); 209 COUNTER_INC(sysvmsg_init_label); 210} 211 212COUNTER_DECL(sysvmsq_init_label); 213static void | 207{ 208 LABEL_INIT(label, MAGIC_SYSV_MSG); 209 COUNTER_INC(sysvmsg_init_label); 210} 211 212COUNTER_DECL(sysvmsq_init_label); 213static void |
214mac_test_sysvmsq_init_label(struct label *label) | 214test_sysvmsq_init_label(struct label *label) |
215{ 216 LABEL_INIT(label, MAGIC_SYSV_MSQ); 217 COUNTER_INC(sysvmsq_init_label); 218} 219 220COUNTER_DECL(sysvsem_init_label); 221static void | 215{ 216 LABEL_INIT(label, MAGIC_SYSV_MSQ); 217 COUNTER_INC(sysvmsq_init_label); 218} 219 220COUNTER_DECL(sysvsem_init_label); 221static void |
222mac_test_sysvsem_init_label(struct label *label) | 222test_sysvsem_init_label(struct label *label) |
223{ 224 LABEL_INIT(label, MAGIC_SYSV_SEM); 225 COUNTER_INC(sysvsem_init_label); 226} 227 228COUNTER_DECL(sysvshm_init_label); 229static void | 223{ 224 LABEL_INIT(label, MAGIC_SYSV_SEM); 225 COUNTER_INC(sysvsem_init_label); 226} 227 228COUNTER_DECL(sysvshm_init_label); 229static void |
230mac_test_sysvshm_init_label(struct label *label) | 230test_sysvshm_init_label(struct label *label) |
231{ 232 LABEL_INIT(label, MAGIC_SYSV_SHM); 233 COUNTER_INC(sysvshm_init_label); 234} 235 236COUNTER_DECL(ipq_init_label); 237static int | 231{ 232 LABEL_INIT(label, MAGIC_SYSV_SHM); 233 COUNTER_INC(sysvshm_init_label); 234} 235 236COUNTER_DECL(ipq_init_label); 237static int |
238mac_test_ipq_init_label(struct label *label, int flag) | 238test_ipq_init_label(struct label *label, int flag) |
239{ 240 241 if (flag & M_WAITOK) 242 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, | 239{ 240 241 if (flag & M_WAITOK) 242 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, |
243 "mac_test_ipq_init_label() at %s:%d", __FILE__, | 243 "test_ipq_init_label() at %s:%d", __FILE__, |
244 __LINE__); 245 246 LABEL_INIT(label, MAGIC_IPQ); 247 COUNTER_INC(ipq_init_label); 248 return (0); 249} 250 251COUNTER_DECL(mbuf_init_label); 252static int | 244 __LINE__); 245 246 LABEL_INIT(label, MAGIC_IPQ); 247 COUNTER_INC(ipq_init_label); 248 return (0); 249} 250 251COUNTER_DECL(mbuf_init_label); 252static int |
253mac_test_mbuf_init_label(struct label *label, int flag) | 253test_mbuf_init_label(struct label *label, int flag) |
254{ 255 256 if (flag & M_WAITOK) 257 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, | 254{ 255 256 if (flag & M_WAITOK) 257 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, |
258 "mac_test_mbuf_init_label() at %s:%d", __FILE__, | 258 "test_mbuf_init_label() at %s:%d", __FILE__, |
259 __LINE__); 260 261 LABEL_INIT(label, MAGIC_MBUF); 262 COUNTER_INC(mbuf_init_label); 263 return (0); 264} 265 266COUNTER_DECL(mount_init_label); 267static void | 259 __LINE__); 260 261 LABEL_INIT(label, MAGIC_MBUF); 262 COUNTER_INC(mbuf_init_label); 263 return (0); 264} 265 266COUNTER_DECL(mount_init_label); 267static void |
268mac_test_mount_init_label(struct label *label) | 268test_mount_init_label(struct label *label) |
269{ 270 271 LABEL_INIT(label, MAGIC_MOUNT); 272 COUNTER_INC(mount_init_label); 273} 274 275COUNTER_DECL(socket_init_label); 276static int | 269{ 270 271 LABEL_INIT(label, MAGIC_MOUNT); 272 COUNTER_INC(mount_init_label); 273} 274 275COUNTER_DECL(socket_init_label); 276static int |
277mac_test_socket_init_label(struct label *label, int flag) | 277test_socket_init_label(struct label *label, int flag) |
278{ 279 280 if (flag & M_WAITOK) 281 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, | 278{ 279 280 if (flag & M_WAITOK) 281 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, |
282 "mac_test_socket_init_label() at %s:%d", __FILE__, | 282 "test_socket_init_label() at %s:%d", __FILE__, |
283 __LINE__); 284 285 LABEL_INIT(label, MAGIC_SOCKET); 286 COUNTER_INC(socket_init_label); 287 return (0); 288} 289 290COUNTER_DECL(socketpeer_init_label); 291static int | 283 __LINE__); 284 285 LABEL_INIT(label, MAGIC_SOCKET); 286 COUNTER_INC(socket_init_label); 287 return (0); 288} 289 290COUNTER_DECL(socketpeer_init_label); 291static int |
292mac_test_socketpeer_init_label(struct label *label, int flag) | 292test_socketpeer_init_label(struct label *label, int flag) |
293{ 294 295 if (flag & M_WAITOK) 296 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, | 293{ 294 295 if (flag & M_WAITOK) 296 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, |
297 "mac_test_socketpeer_init_label() at %s:%d", __FILE__, | 297 "test_socketpeer_init_label() at %s:%d", __FILE__, |
298 __LINE__); 299 300 LABEL_INIT(label, MAGIC_SOCKET); 301 COUNTER_INC(socketpeer_init_label); 302 return (0); 303} 304 305COUNTER_DECL(pipe_init_label); 306static void | 298 __LINE__); 299 300 LABEL_INIT(label, MAGIC_SOCKET); 301 COUNTER_INC(socketpeer_init_label); 302 return (0); 303} 304 305COUNTER_DECL(pipe_init_label); 306static void |
307mac_test_pipe_init_label(struct label *label) | 307test_pipe_init_label(struct label *label) |
308{ 309 310 LABEL_INIT(label, MAGIC_PIPE); 311 COUNTER_INC(pipe_init_label); 312} 313 314COUNTER_DECL(posixsem_init_label); 315static void | 308{ 309 310 LABEL_INIT(label, MAGIC_PIPE); 311 COUNTER_INC(pipe_init_label); 312} 313 314COUNTER_DECL(posixsem_init_label); 315static void |
316mac_test_posixsem_init_label(struct label *label) | 316test_posixsem_init_label(struct label *label) |
317{ 318 319 LABEL_INIT(label, MAGIC_POSIX_SEM); 320 COUNTER_INC(posixsem_init_label); 321} 322 323COUNTER_DECL(proc_init_label); 324static void | 317{ 318 319 LABEL_INIT(label, MAGIC_POSIX_SEM); 320 COUNTER_INC(posixsem_init_label); 321} 322 323COUNTER_DECL(proc_init_label); 324static void |
325mac_test_proc_init_label(struct label *label) | 325test_proc_init_label(struct label *label) |
326{ 327 328 LABEL_INIT(label, MAGIC_PROC); 329 COUNTER_INC(proc_init_label); 330} 331 332COUNTER_DECL(vnode_init_label); 333static void | 326{ 327 328 LABEL_INIT(label, MAGIC_PROC); 329 COUNTER_INC(proc_init_label); 330} 331 332COUNTER_DECL(vnode_init_label); 333static void |
334mac_test_vnode_init_label(struct label *label) | 334test_vnode_init_label(struct label *label) |
335{ 336 337 LABEL_INIT(label, MAGIC_VNODE); 338 COUNTER_INC(vnode_init_label); 339} 340 341COUNTER_DECL(bpfdesc_destroy_label); 342static void | 335{ 336 337 LABEL_INIT(label, MAGIC_VNODE); 338 COUNTER_INC(vnode_init_label); 339} 340 341COUNTER_DECL(bpfdesc_destroy_label); 342static void |
343mac_test_bpfdesc_destroy_label(struct label *label) | 343test_bpfdesc_destroy_label(struct label *label) |
344{ 345 346 LABEL_DESTROY(label, MAGIC_BPF); 347 COUNTER_INC(bpfdesc_destroy_label); 348} 349 350COUNTER_DECL(cred_destroy_label); 351static void | 344{ 345 346 LABEL_DESTROY(label, MAGIC_BPF); 347 COUNTER_INC(bpfdesc_destroy_label); 348} 349 350COUNTER_DECL(cred_destroy_label); 351static void |
352mac_test_cred_destroy_label(struct label *label) | 352test_cred_destroy_label(struct label *label) |
353{ 354 355 LABEL_DESTROY(label, MAGIC_CRED); 356 COUNTER_INC(cred_destroy_label); 357} 358 359COUNTER_DECL(devfs_destroy_label); 360static void | 353{ 354 355 LABEL_DESTROY(label, MAGIC_CRED); 356 COUNTER_INC(cred_destroy_label); 357} 358 359COUNTER_DECL(devfs_destroy_label); 360static void |
361mac_test_devfs_destroy_label(struct label *label) | 361test_devfs_destroy_label(struct label *label) |
362{ 363 364 LABEL_DESTROY(label, MAGIC_DEVFS); 365 COUNTER_INC(devfs_destroy_label); 366} 367 368COUNTER_DECL(ifnet_destroy_label); 369static void | 362{ 363 364 LABEL_DESTROY(label, MAGIC_DEVFS); 365 COUNTER_INC(devfs_destroy_label); 366} 367 368COUNTER_DECL(ifnet_destroy_label); 369static void |
370mac_test_ifnet_destroy_label(struct label *label) | 370test_ifnet_destroy_label(struct label *label) |
371{ 372 373 LABEL_DESTROY(label, MAGIC_IFNET); 374 COUNTER_INC(ifnet_destroy_label); 375} 376 377COUNTER_DECL(inpcb_destroy_label); 378static void | 371{ 372 373 LABEL_DESTROY(label, MAGIC_IFNET); 374 COUNTER_INC(ifnet_destroy_label); 375} 376 377COUNTER_DECL(inpcb_destroy_label); 378static void |
379mac_test_inpcb_destroy_label(struct label *label) | 379test_inpcb_destroy_label(struct label *label) |
380{ 381 382 LABEL_DESTROY(label, MAGIC_INPCB); 383 COUNTER_INC(inpcb_destroy_label); 384} 385 386COUNTER_DECL(sysvmsg_destroy_label); 387static void | 380{ 381 382 LABEL_DESTROY(label, MAGIC_INPCB); 383 COUNTER_INC(inpcb_destroy_label); 384} 385 386COUNTER_DECL(sysvmsg_destroy_label); 387static void |
388mac_test_sysvmsg_destroy_label(struct label *label) | 388test_sysvmsg_destroy_label(struct label *label) |
389{ 390 391 LABEL_DESTROY(label, MAGIC_SYSV_MSG); 392 COUNTER_INC(sysvmsg_destroy_label); 393} 394 395COUNTER_DECL(sysvmsq_destroy_label); 396static void | 389{ 390 391 LABEL_DESTROY(label, MAGIC_SYSV_MSG); 392 COUNTER_INC(sysvmsg_destroy_label); 393} 394 395COUNTER_DECL(sysvmsq_destroy_label); 396static void |
397mac_test_sysvmsq_destroy_label(struct label *label) | 397test_sysvmsq_destroy_label(struct label *label) |
398{ 399 400 LABEL_DESTROY(label, MAGIC_SYSV_MSQ); 401 COUNTER_INC(sysvmsq_destroy_label); 402} 403 404COUNTER_DECL(sysvsem_destroy_label); 405static void | 398{ 399 400 LABEL_DESTROY(label, MAGIC_SYSV_MSQ); 401 COUNTER_INC(sysvmsq_destroy_label); 402} 403 404COUNTER_DECL(sysvsem_destroy_label); 405static void |
406mac_test_sysvsem_destroy_label(struct label *label) | 406test_sysvsem_destroy_label(struct label *label) |
407{ 408 409 LABEL_DESTROY(label, MAGIC_SYSV_SEM); 410 COUNTER_INC(sysvsem_destroy_label); 411} 412 413COUNTER_DECL(sysvshm_destroy_label); 414static void | 407{ 408 409 LABEL_DESTROY(label, MAGIC_SYSV_SEM); 410 COUNTER_INC(sysvsem_destroy_label); 411} 412 413COUNTER_DECL(sysvshm_destroy_label); 414static void |
415mac_test_sysvshm_destroy_label(struct label *label) | 415test_sysvshm_destroy_label(struct label *label) |
416{ 417 418 LABEL_DESTROY(label, MAGIC_SYSV_SHM); 419 COUNTER_INC(sysvshm_destroy_label); 420} 421 422COUNTER_DECL(ipq_destroy_label); 423static void | 416{ 417 418 LABEL_DESTROY(label, MAGIC_SYSV_SHM); 419 COUNTER_INC(sysvshm_destroy_label); 420} 421 422COUNTER_DECL(ipq_destroy_label); 423static void |
424mac_test_ipq_destroy_label(struct label *label) | 424test_ipq_destroy_label(struct label *label) |
425{ 426 427 LABEL_DESTROY(label, MAGIC_IPQ); 428 COUNTER_INC(ipq_destroy_label); 429} 430 431COUNTER_DECL(mbuf_destroy_label); 432static void | 425{ 426 427 LABEL_DESTROY(label, MAGIC_IPQ); 428 COUNTER_INC(ipq_destroy_label); 429} 430 431COUNTER_DECL(mbuf_destroy_label); 432static void |
433mac_test_mbuf_destroy_label(struct label *label) | 433test_mbuf_destroy_label(struct label *label) |
434{ 435 436 /* 437 * If we're loaded dynamically, there may be mbufs in flight that 438 * didn't have label storage allocated for them. Handle this 439 * gracefully. 440 */ 441 if (label == NULL) 442 return; 443 444 LABEL_DESTROY(label, MAGIC_MBUF); 445 COUNTER_INC(mbuf_destroy_label); 446} 447 448COUNTER_DECL(mount_destroy_label); 449static void | 434{ 435 436 /* 437 * If we're loaded dynamically, there may be mbufs in flight that 438 * didn't have label storage allocated for them. Handle this 439 * gracefully. 440 */ 441 if (label == NULL) 442 return; 443 444 LABEL_DESTROY(label, MAGIC_MBUF); 445 COUNTER_INC(mbuf_destroy_label); 446} 447 448COUNTER_DECL(mount_destroy_label); 449static void |
450mac_test_mount_destroy_label(struct label *label) | 450test_mount_destroy_label(struct label *label) |
451{ 452 453 LABEL_DESTROY(label, MAGIC_MOUNT); 454 COUNTER_INC(mount_destroy_label); 455} 456 457COUNTER_DECL(socket_destroy_label); 458static void | 451{ 452 453 LABEL_DESTROY(label, MAGIC_MOUNT); 454 COUNTER_INC(mount_destroy_label); 455} 456 457COUNTER_DECL(socket_destroy_label); 458static void |
459mac_test_socket_destroy_label(struct label *label) | 459test_socket_destroy_label(struct label *label) |
460{ 461 462 LABEL_DESTROY(label, MAGIC_SOCKET); 463 COUNTER_INC(socket_destroy_label); 464} 465 466COUNTER_DECL(socketpeer_destroy_label); 467static void | 460{ 461 462 LABEL_DESTROY(label, MAGIC_SOCKET); 463 COUNTER_INC(socket_destroy_label); 464} 465 466COUNTER_DECL(socketpeer_destroy_label); 467static void |
468mac_test_socketpeer_destroy_label(struct label *label) | 468test_socketpeer_destroy_label(struct label *label) |
469{ 470 471 LABEL_DESTROY(label, MAGIC_SOCKET); 472 COUNTER_INC(socketpeer_destroy_label); 473} 474 475COUNTER_DECL(pipe_destroy_label); 476static void | 469{ 470 471 LABEL_DESTROY(label, MAGIC_SOCKET); 472 COUNTER_INC(socketpeer_destroy_label); 473} 474 475COUNTER_DECL(pipe_destroy_label); 476static void |
477mac_test_pipe_destroy_label(struct label *label) | 477test_pipe_destroy_label(struct label *label) |
478{ 479 480 LABEL_DESTROY(label, MAGIC_PIPE); 481 COUNTER_INC(pipe_destroy_label); 482} 483 484COUNTER_DECL(posixsem_destroy_label); 485static void | 478{ 479 480 LABEL_DESTROY(label, MAGIC_PIPE); 481 COUNTER_INC(pipe_destroy_label); 482} 483 484COUNTER_DECL(posixsem_destroy_label); 485static void |
486mac_test_posixsem_destroy_label(struct label *label) | 486test_posixsem_destroy_label(struct label *label) |
487{ 488 489 LABEL_DESTROY(label, MAGIC_POSIX_SEM); 490 COUNTER_INC(posixsem_destroy_label); 491} 492 493COUNTER_DECL(proc_destroy_label); 494static void | 487{ 488 489 LABEL_DESTROY(label, MAGIC_POSIX_SEM); 490 COUNTER_INC(posixsem_destroy_label); 491} 492 493COUNTER_DECL(proc_destroy_label); 494static void |
495mac_test_proc_destroy_label(struct label *label) | 495test_proc_destroy_label(struct label *label) |
496{ 497 498 LABEL_DESTROY(label, MAGIC_PROC); 499 COUNTER_INC(proc_destroy_label); 500} 501 502COUNTER_DECL(vnode_destroy_label); 503static void | 496{ 497 498 LABEL_DESTROY(label, MAGIC_PROC); 499 COUNTER_INC(proc_destroy_label); 500} 501 502COUNTER_DECL(vnode_destroy_label); 503static void |
504mac_test_vnode_destroy_label(struct label *label) | 504test_vnode_destroy_label(struct label *label) |
505{ 506 507 LABEL_DESTROY(label, MAGIC_VNODE); 508 COUNTER_INC(vnode_destroy_label); 509} 510 511COUNTER_DECL(cred_copy_label); 512static void | 505{ 506 507 LABEL_DESTROY(label, MAGIC_VNODE); 508 COUNTER_INC(vnode_destroy_label); 509} 510 511COUNTER_DECL(cred_copy_label); 512static void |
513mac_test_cred_copy_label(struct label *src, struct label *dest) | 513test_cred_copy_label(struct label *src, struct label *dest) |
514{ 515 516 LABEL_CHECK(src, MAGIC_CRED); 517 LABEL_CHECK(dest, MAGIC_CRED); 518 COUNTER_INC(cred_copy_label); 519} 520 521COUNTER_DECL(ifnet_copy_label); 522static void | 514{ 515 516 LABEL_CHECK(src, MAGIC_CRED); 517 LABEL_CHECK(dest, MAGIC_CRED); 518 COUNTER_INC(cred_copy_label); 519} 520 521COUNTER_DECL(ifnet_copy_label); 522static void |
523mac_test_ifnet_copy_label(struct label *src, struct label *dest) | 523test_ifnet_copy_label(struct label *src, struct label *dest) |
524{ 525 526 LABEL_CHECK(src, MAGIC_IFNET); 527 LABEL_CHECK(dest, MAGIC_IFNET); 528 COUNTER_INC(ifnet_copy_label); 529} 530 531COUNTER_DECL(mbuf_copy_label); 532static void | 524{ 525 526 LABEL_CHECK(src, MAGIC_IFNET); 527 LABEL_CHECK(dest, MAGIC_IFNET); 528 COUNTER_INC(ifnet_copy_label); 529} 530 531COUNTER_DECL(mbuf_copy_label); 532static void |
533mac_test_mbuf_copy_label(struct label *src, struct label *dest) | 533test_mbuf_copy_label(struct label *src, struct label *dest) |
534{ 535 536 LABEL_CHECK(src, MAGIC_MBUF); 537 LABEL_CHECK(dest, MAGIC_MBUF); 538 COUNTER_INC(mbuf_copy_label); 539} 540 541COUNTER_DECL(pipe_copy_label); 542static void | 534{ 535 536 LABEL_CHECK(src, MAGIC_MBUF); 537 LABEL_CHECK(dest, MAGIC_MBUF); 538 COUNTER_INC(mbuf_copy_label); 539} 540 541COUNTER_DECL(pipe_copy_label); 542static void |
543mac_test_pipe_copy_label(struct label *src, struct label *dest) | 543test_pipe_copy_label(struct label *src, struct label *dest) |
544{ 545 546 LABEL_CHECK(src, MAGIC_PIPE); 547 LABEL_CHECK(dest, MAGIC_PIPE); 548 COUNTER_INC(pipe_copy_label); 549} 550 551COUNTER_DECL(socket_copy_label); 552static void | 544{ 545 546 LABEL_CHECK(src, MAGIC_PIPE); 547 LABEL_CHECK(dest, MAGIC_PIPE); 548 COUNTER_INC(pipe_copy_label); 549} 550 551COUNTER_DECL(socket_copy_label); 552static void |
553mac_test_socket_copy_label(struct label *src, struct label *dest) | 553test_socket_copy_label(struct label *src, struct label *dest) |
554{ 555 556 LABEL_CHECK(src, MAGIC_SOCKET); 557 LABEL_CHECK(dest, MAGIC_SOCKET); 558 COUNTER_INC(socket_copy_label); 559} 560 561COUNTER_DECL(vnode_copy_label); 562static void | 554{ 555 556 LABEL_CHECK(src, MAGIC_SOCKET); 557 LABEL_CHECK(dest, MAGIC_SOCKET); 558 COUNTER_INC(socket_copy_label); 559} 560 561COUNTER_DECL(vnode_copy_label); 562static void |
563mac_test_vnode_copy_label(struct label *src, struct label *dest) | 563test_vnode_copy_label(struct label *src, struct label *dest) |
564{ 565 566 LABEL_CHECK(src, MAGIC_VNODE); 567 LABEL_CHECK(dest, MAGIC_VNODE); 568 COUNTER_INC(vnode_copy_label); 569} 570 571COUNTER_DECL(externalize_label); 572static int | 564{ 565 566 LABEL_CHECK(src, MAGIC_VNODE); 567 LABEL_CHECK(dest, MAGIC_VNODE); 568 COUNTER_INC(vnode_copy_label); 569} 570 571COUNTER_DECL(externalize_label); 572static int |
573mac_test_externalize_label(struct label *label, char *element_name, | 573test_externalize_label(struct label *label, char *element_name, |
574 struct sbuf *sb, int *claimed) 575{ 576 577 LABEL_NOTFREE(label); 578 COUNTER_INC(externalize_label); 579 580 return (0); 581} 582 583COUNTER_DECL(internalize_label); 584static int | 574 struct sbuf *sb, int *claimed) 575{ 576 577 LABEL_NOTFREE(label); 578 COUNTER_INC(externalize_label); 579 580 return (0); 581} 582 583COUNTER_DECL(internalize_label); 584static int |
585mac_test_internalize_label(struct label *label, char *element_name, | 585test_internalize_label(struct label *label, char *element_name, |
586 char *element_data, int *claimed) 587{ 588 589 LABEL_NOTFREE(label); 590 COUNTER_INC(internalize_label); 591 592 return (0); 593} 594 595/* 596 * Labeling event operations: file system objects, and things that look 597 * a lot like file system objects. 598 */ 599COUNTER_DECL(devfs_vnode_associate); 600static void | 586 char *element_data, int *claimed) 587{ 588 589 LABEL_NOTFREE(label); 590 COUNTER_INC(internalize_label); 591 592 return (0); 593} 594 595/* 596 * Labeling event operations: file system objects, and things that look 597 * a lot like file system objects. 598 */ 599COUNTER_DECL(devfs_vnode_associate); 600static void |
601mac_test_devfs_vnode_associate(struct mount *mp, struct label *mplabel, | 601test_devfs_vnode_associate(struct mount *mp, struct label *mplabel, |
602 struct devfs_dirent *de, struct label *delabel, struct vnode *vp, 603 struct label *vplabel) 604{ 605 606 LABEL_CHECK(mplabel, MAGIC_MOUNT); 607 LABEL_CHECK(delabel, MAGIC_DEVFS); 608 LABEL_CHECK(vplabel, MAGIC_VNODE); 609 COUNTER_INC(devfs_vnode_associate); 610} 611 612COUNTER_DECL(vnode_associate_extattr); 613static int | 602 struct devfs_dirent *de, struct label *delabel, struct vnode *vp, 603 struct label *vplabel) 604{ 605 606 LABEL_CHECK(mplabel, MAGIC_MOUNT); 607 LABEL_CHECK(delabel, MAGIC_DEVFS); 608 LABEL_CHECK(vplabel, MAGIC_VNODE); 609 COUNTER_INC(devfs_vnode_associate); 610} 611 612COUNTER_DECL(vnode_associate_extattr); 613static int |
614mac_test_vnode_associate_extattr(struct mount *mp, struct label *mplabel, | 614test_vnode_associate_extattr(struct mount *mp, struct label *mplabel, |
615 struct vnode *vp, struct label *vplabel) 616{ 617 618 LABEL_CHECK(mplabel, MAGIC_MOUNT); 619 LABEL_CHECK(vplabel, MAGIC_VNODE); 620 COUNTER_INC(vnode_associate_extattr); 621 622 return (0); 623} 624 625COUNTER_DECL(vnode_associate_singlelabel); 626static void | 615 struct vnode *vp, struct label *vplabel) 616{ 617 618 LABEL_CHECK(mplabel, MAGIC_MOUNT); 619 LABEL_CHECK(vplabel, MAGIC_VNODE); 620 COUNTER_INC(vnode_associate_extattr); 621 622 return (0); 623} 624 625COUNTER_DECL(vnode_associate_singlelabel); 626static void |
627mac_test_vnode_associate_singlelabel(struct mount *mp, struct label *mplabel, | 627test_vnode_associate_singlelabel(struct mount *mp, struct label *mplabel, |
628 struct vnode *vp, struct label *vplabel) 629{ 630 631 LABEL_CHECK(mplabel, MAGIC_MOUNT); 632 LABEL_CHECK(vplabel, MAGIC_VNODE); 633 COUNTER_INC(vnode_associate_singlelabel); 634} 635 636COUNTER_DECL(devfs_create_device); 637static void | 628 struct vnode *vp, struct label *vplabel) 629{ 630 631 LABEL_CHECK(mplabel, MAGIC_MOUNT); 632 LABEL_CHECK(vplabel, MAGIC_VNODE); 633 COUNTER_INC(vnode_associate_singlelabel); 634} 635 636COUNTER_DECL(devfs_create_device); 637static void |
638mac_test_devfs_create_device(struct ucred *cred, struct mount *mp, | 638test_devfs_create_device(struct ucred *cred, struct mount *mp, |
639 struct cdev *dev, struct devfs_dirent *de, struct label *delabel) 640{ 641 642 if (cred != NULL) 643 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 644 LABEL_CHECK(delabel, MAGIC_DEVFS); 645 COUNTER_INC(devfs_create_device); 646} 647 648COUNTER_DECL(devfs_create_directory); 649static void | 639 struct cdev *dev, struct devfs_dirent *de, struct label *delabel) 640{ 641 642 if (cred != NULL) 643 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 644 LABEL_CHECK(delabel, MAGIC_DEVFS); 645 COUNTER_INC(devfs_create_device); 646} 647 648COUNTER_DECL(devfs_create_directory); 649static void |
650mac_test_devfs_create_directory(struct mount *mp, char *dirname, | 650test_devfs_create_directory(struct mount *mp, char *dirname, |
651 int dirnamelen, struct devfs_dirent *de, struct label *delabel) 652{ 653 654 LABEL_CHECK(delabel, MAGIC_DEVFS); 655 COUNTER_INC(devfs_create_directory); 656} 657 658COUNTER_DECL(devfs_create_symlink); 659static void | 651 int dirnamelen, struct devfs_dirent *de, struct label *delabel) 652{ 653 654 LABEL_CHECK(delabel, MAGIC_DEVFS); 655 COUNTER_INC(devfs_create_directory); 656} 657 658COUNTER_DECL(devfs_create_symlink); 659static void |
660mac_test_devfs_create_symlink(struct ucred *cred, struct mount *mp, | 660test_devfs_create_symlink(struct ucred *cred, struct mount *mp, |
661 struct devfs_dirent *dd, struct label *ddlabel, struct devfs_dirent *de, 662 struct label *delabel) 663{ 664 665 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 666 LABEL_CHECK(ddlabel, MAGIC_DEVFS); 667 LABEL_CHECK(delabel, MAGIC_DEVFS); 668 COUNTER_INC(devfs_create_symlink); 669} 670 671COUNTER_DECL(vnode_create_extattr); 672static int | 661 struct devfs_dirent *dd, struct label *ddlabel, struct devfs_dirent *de, 662 struct label *delabel) 663{ 664 665 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 666 LABEL_CHECK(ddlabel, MAGIC_DEVFS); 667 LABEL_CHECK(delabel, MAGIC_DEVFS); 668 COUNTER_INC(devfs_create_symlink); 669} 670 671COUNTER_DECL(vnode_create_extattr); 672static int |
673mac_test_vnode_create_extattr(struct ucred *cred, struct mount *mp, | 673test_vnode_create_extattr(struct ucred *cred, struct mount *mp, |
674 struct label *mplabel, struct vnode *dvp, struct label *dvplabel, 675 struct vnode *vp, struct label *vplabel, struct componentname *cnp) 676{ 677 678 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 679 LABEL_CHECK(mplabel, MAGIC_MOUNT); 680 LABEL_CHECK(dvplabel, MAGIC_VNODE); 681 COUNTER_INC(vnode_create_extattr); 682 683 return (0); 684} 685 686COUNTER_DECL(mount_create); 687static void | 674 struct label *mplabel, struct vnode *dvp, struct label *dvplabel, 675 struct vnode *vp, struct label *vplabel, struct componentname *cnp) 676{ 677 678 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 679 LABEL_CHECK(mplabel, MAGIC_MOUNT); 680 LABEL_CHECK(dvplabel, MAGIC_VNODE); 681 COUNTER_INC(vnode_create_extattr); 682 683 return (0); 684} 685 686COUNTER_DECL(mount_create); 687static void |
688mac_test_mount_create(struct ucred *cred, struct mount *mp, | 688test_mount_create(struct ucred *cred, struct mount *mp, |
689 struct label *mplabel) 690{ 691 692 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 693 LABEL_CHECK(mplabel, MAGIC_MOUNT); 694 COUNTER_INC(mount_create); 695} 696 697COUNTER_DECL(vnode_relabel); 698static void | 689 struct label *mplabel) 690{ 691 692 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 693 LABEL_CHECK(mplabel, MAGIC_MOUNT); 694 COUNTER_INC(mount_create); 695} 696 697COUNTER_DECL(vnode_relabel); 698static void |
699mac_test_vnode_relabel(struct ucred *cred, struct vnode *vp, | 699test_vnode_relabel(struct ucred *cred, struct vnode *vp, |
700 struct label *vplabel, struct label *label) 701{ 702 703 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 704 LABEL_CHECK(vplabel, MAGIC_VNODE); 705 LABEL_CHECK(label, MAGIC_VNODE); 706 COUNTER_INC(vnode_relabel); 707} 708 709COUNTER_DECL(vnode_setlabel_extattr); 710static int | 700 struct label *vplabel, struct label *label) 701{ 702 703 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 704 LABEL_CHECK(vplabel, MAGIC_VNODE); 705 LABEL_CHECK(label, MAGIC_VNODE); 706 COUNTER_INC(vnode_relabel); 707} 708 709COUNTER_DECL(vnode_setlabel_extattr); 710static int |
711mac_test_vnode_setlabel_extattr(struct ucred *cred, struct vnode *vp, | 711test_vnode_setlabel_extattr(struct ucred *cred, struct vnode *vp, |
712 struct label *vplabel, struct label *intlabel) 713{ 714 715 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 716 LABEL_CHECK(vplabel, MAGIC_VNODE); 717 LABEL_CHECK(intlabel, MAGIC_VNODE); 718 COUNTER_INC(vnode_setlabel_extattr); 719 720 return (0); 721} 722 723COUNTER_DECL(devfs_update); 724static void | 712 struct label *vplabel, struct label *intlabel) 713{ 714 715 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 716 LABEL_CHECK(vplabel, MAGIC_VNODE); 717 LABEL_CHECK(intlabel, MAGIC_VNODE); 718 COUNTER_INC(vnode_setlabel_extattr); 719 720 return (0); 721} 722 723COUNTER_DECL(devfs_update); 724static void |
725mac_test_devfs_update(struct mount *mp, struct devfs_dirent *devfs_dirent, | 725test_devfs_update(struct mount *mp, struct devfs_dirent *devfs_dirent, |
726 struct label *direntlabel, struct vnode *vp, struct label *vplabel) 727{ 728 729 LABEL_CHECK(direntlabel, MAGIC_DEVFS); 730 LABEL_CHECK(vplabel, MAGIC_VNODE); 731 COUNTER_INC(devfs_update); 732} 733 734/* 735 * Labeling event operations: IPC object. 736 */ 737COUNTER_DECL(socket_create_mbuf); 738static void | 726 struct label *direntlabel, struct vnode *vp, struct label *vplabel) 727{ 728 729 LABEL_CHECK(direntlabel, MAGIC_DEVFS); 730 LABEL_CHECK(vplabel, MAGIC_VNODE); 731 COUNTER_INC(devfs_update); 732} 733 734/* 735 * Labeling event operations: IPC object. 736 */ 737COUNTER_DECL(socket_create_mbuf); 738static void |
739mac_test_socket_create_mbuf(struct socket *so, struct label *socketlabel, | 739test_socket_create_mbuf(struct socket *so, struct label *socketlabel, |
740 struct mbuf *m, struct label *mbuflabel) 741{ 742 743 LABEL_CHECK(socketlabel, MAGIC_SOCKET); 744 LABEL_CHECK(mbuflabel, MAGIC_MBUF); 745 COUNTER_INC(socket_create_mbuf); 746} 747 748COUNTER_DECL(socket_create); 749static void | 740 struct mbuf *m, struct label *mbuflabel) 741{ 742 743 LABEL_CHECK(socketlabel, MAGIC_SOCKET); 744 LABEL_CHECK(mbuflabel, MAGIC_MBUF); 745 COUNTER_INC(socket_create_mbuf); 746} 747 748COUNTER_DECL(socket_create); 749static void |
750mac_test_socket_create(struct ucred *cred, struct socket *socket, | 750test_socket_create(struct ucred *cred, struct socket *socket, |
751 struct label *socketlabel) 752{ 753 754 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 755 LABEL_CHECK(socketlabel, MAGIC_SOCKET); 756 COUNTER_INC(socket_create); 757} 758 759COUNTER_DECL(pipe_create); 760static void | 751 struct label *socketlabel) 752{ 753 754 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 755 LABEL_CHECK(socketlabel, MAGIC_SOCKET); 756 COUNTER_INC(socket_create); 757} 758 759COUNTER_DECL(pipe_create); 760static void |
761mac_test_pipe_create(struct ucred *cred, struct pipepair *pp, | 761test_pipe_create(struct ucred *cred, struct pipepair *pp, |
762 struct label *pipelabel) 763{ 764 765 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 766 LABEL_CHECK(pipelabel, MAGIC_PIPE); 767 COUNTER_INC(pipe_create); 768} 769 770COUNTER_DECL(posixsem_create); 771static void | 762 struct label *pipelabel) 763{ 764 765 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 766 LABEL_CHECK(pipelabel, MAGIC_PIPE); 767 COUNTER_INC(pipe_create); 768} 769 770COUNTER_DECL(posixsem_create); 771static void |
772mac_test_posixsem_create(struct ucred *cred, struct ksem *ks, | 772test_posixsem_create(struct ucred *cred, struct ksem *ks, |
773 struct label *kslabel) 774{ 775 776 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 777 LABEL_CHECK(kslabel, MAGIC_POSIX_SEM); 778 COUNTER_INC(posixsem_create); 779} 780 781COUNTER_DECL(socket_newconn); 782static void | 773 struct label *kslabel) 774{ 775 776 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 777 LABEL_CHECK(kslabel, MAGIC_POSIX_SEM); 778 COUNTER_INC(posixsem_create); 779} 780 781COUNTER_DECL(socket_newconn); 782static void |
783mac_test_socket_newconn(struct socket *oldsocket, | 783test_socket_newconn(struct socket *oldsocket, |
784 struct label *oldsocketlabel, struct socket *newsocket, 785 struct label *newsocketlabel) 786{ 787 788 LABEL_CHECK(oldsocketlabel, MAGIC_SOCKET); 789 LABEL_CHECK(newsocketlabel, MAGIC_SOCKET); 790 COUNTER_INC(socket_newconn); 791} 792 793COUNTER_DECL(socket_relabel); 794static void | 784 struct label *oldsocketlabel, struct socket *newsocket, 785 struct label *newsocketlabel) 786{ 787 788 LABEL_CHECK(oldsocketlabel, MAGIC_SOCKET); 789 LABEL_CHECK(newsocketlabel, MAGIC_SOCKET); 790 COUNTER_INC(socket_newconn); 791} 792 793COUNTER_DECL(socket_relabel); 794static void |
795mac_test_socket_relabel(struct ucred *cred, struct socket *socket, | 795test_socket_relabel(struct ucred *cred, struct socket *socket, |
796 struct label *socketlabel, struct label *newlabel) 797{ 798 799 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 800 LABEL_CHECK(newlabel, MAGIC_SOCKET); 801 COUNTER_INC(socket_relabel); 802} 803 804COUNTER_DECL(pipe_relabel); 805static void | 796 struct label *socketlabel, struct label *newlabel) 797{ 798 799 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 800 LABEL_CHECK(newlabel, MAGIC_SOCKET); 801 COUNTER_INC(socket_relabel); 802} 803 804COUNTER_DECL(pipe_relabel); 805static void |
806mac_test_pipe_relabel(struct ucred *cred, struct pipepair *pp, | 806test_pipe_relabel(struct ucred *cred, struct pipepair *pp, |
807 struct label *pipelabel, struct label *newlabel) 808{ 809 810 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 811 LABEL_CHECK(pipelabel, MAGIC_PIPE); 812 LABEL_CHECK(newlabel, MAGIC_PIPE); 813 COUNTER_INC(pipe_relabel); 814} 815 816COUNTER_DECL(socketpeer_set_from_mbuf); 817static void | 807 struct label *pipelabel, struct label *newlabel) 808{ 809 810 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 811 LABEL_CHECK(pipelabel, MAGIC_PIPE); 812 LABEL_CHECK(newlabel, MAGIC_PIPE); 813 COUNTER_INC(pipe_relabel); 814} 815 816COUNTER_DECL(socketpeer_set_from_mbuf); 817static void |
818mac_test_socketpeer_set_from_mbuf(struct mbuf *mbuf, struct label *mbuflabel, | 818test_socketpeer_set_from_mbuf(struct mbuf *mbuf, struct label *mbuflabel, |
819 struct socket *socket, struct label *socketpeerlabel) 820{ 821 822 LABEL_CHECK(mbuflabel, MAGIC_MBUF); 823 LABEL_CHECK(socketpeerlabel, MAGIC_SOCKET); 824 COUNTER_INC(socketpeer_set_from_mbuf); 825} 826 827/* 828 * Labeling event operations: network objects. 829 */ 830COUNTER_DECL(socketpeer_set_from_socket); 831static void | 819 struct socket *socket, struct label *socketpeerlabel) 820{ 821 822 LABEL_CHECK(mbuflabel, MAGIC_MBUF); 823 LABEL_CHECK(socketpeerlabel, MAGIC_SOCKET); 824 COUNTER_INC(socketpeer_set_from_mbuf); 825} 826 827/* 828 * Labeling event operations: network objects. 829 */ 830COUNTER_DECL(socketpeer_set_from_socket); 831static void |
832mac_test_socketpeer_set_from_socket(struct socket *oldsocket, | 832test_socketpeer_set_from_socket(struct socket *oldsocket, |
833 struct label *oldsocketlabel, struct socket *newsocket, 834 struct label *newsocketpeerlabel) 835{ 836 837 LABEL_CHECK(oldsocketlabel, MAGIC_SOCKET); 838 LABEL_CHECK(newsocketpeerlabel, MAGIC_SOCKET); 839 COUNTER_INC(socketpeer_set_from_socket); 840} 841 842COUNTER_DECL(bpfdesc_create); 843static void | 833 struct label *oldsocketlabel, struct socket *newsocket, 834 struct label *newsocketpeerlabel) 835{ 836 837 LABEL_CHECK(oldsocketlabel, MAGIC_SOCKET); 838 LABEL_CHECK(newsocketpeerlabel, MAGIC_SOCKET); 839 COUNTER_INC(socketpeer_set_from_socket); 840} 841 842COUNTER_DECL(bpfdesc_create); 843static void |
844mac_test_bpfdesc_create(struct ucred *cred, struct bpf_d *bpf_d, | 844test_bpfdesc_create(struct ucred *cred, struct bpf_d *bpf_d, |
845 struct label *bpflabel) 846{ 847 848 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 849 LABEL_CHECK(bpflabel, MAGIC_BPF); 850 COUNTER_INC(bpfdesc_create); 851} 852 853COUNTER_DECL(ipq_reassemble); 854static void | 845 struct label *bpflabel) 846{ 847 848 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 849 LABEL_CHECK(bpflabel, MAGIC_BPF); 850 COUNTER_INC(bpfdesc_create); 851} 852 853COUNTER_DECL(ipq_reassemble); 854static void |
855mac_test_ipq_reassemble(struct ipq *ipq, struct label *ipqlabel, | 855test_ipq_reassemble(struct ipq *ipq, struct label *ipqlabel, |
856 struct mbuf *datagram, struct label *datagramlabel) 857{ 858 859 LABEL_CHECK(ipqlabel, MAGIC_IPQ); 860 LABEL_CHECK(datagramlabel, MAGIC_MBUF); 861 COUNTER_INC(ipq_reassemble); 862} 863 864COUNTER_DECL(netinet_fragment); 865static void | 856 struct mbuf *datagram, struct label *datagramlabel) 857{ 858 859 LABEL_CHECK(ipqlabel, MAGIC_IPQ); 860 LABEL_CHECK(datagramlabel, MAGIC_MBUF); 861 COUNTER_INC(ipq_reassemble); 862} 863 864COUNTER_DECL(netinet_fragment); 865static void |
866mac_test_netinet_fragment(struct mbuf *datagram, struct label *datagramlabel, | 866test_netinet_fragment(struct mbuf *datagram, struct label *datagramlabel, |
867 struct mbuf *fragment, struct label *fragmentlabel) 868{ 869 870 LABEL_CHECK(datagramlabel, MAGIC_MBUF); 871 LABEL_CHECK(fragmentlabel, MAGIC_MBUF); 872 COUNTER_INC(netinet_fragment); 873} 874 875COUNTER_DECL(ifnet_create); 876static void | 867 struct mbuf *fragment, struct label *fragmentlabel) 868{ 869 870 LABEL_CHECK(datagramlabel, MAGIC_MBUF); 871 LABEL_CHECK(fragmentlabel, MAGIC_MBUF); 872 COUNTER_INC(netinet_fragment); 873} 874 875COUNTER_DECL(ifnet_create); 876static void |
877mac_test_ifnet_create(struct ifnet *ifp, struct label *ifplabel) | 877test_ifnet_create(struct ifnet *ifp, struct label *ifplabel) |
878{ 879 880 LABEL_CHECK(ifplabel, MAGIC_IFNET); 881 COUNTER_INC(ifnet_create); 882} 883 884COUNTER_DECL(inpcb_create); 885static void | 878{ 879 880 LABEL_CHECK(ifplabel, MAGIC_IFNET); 881 COUNTER_INC(ifnet_create); 882} 883 884COUNTER_DECL(inpcb_create); 885static void |
886mac_test_inpcb_create(struct socket *so, struct label *solabel, | 886test_inpcb_create(struct socket *so, struct label *solabel, |
887 struct inpcb *inp, struct label *inplabel) 888{ 889 890 LABEL_CHECK(solabel, MAGIC_SOCKET); 891 LABEL_CHECK(inplabel, MAGIC_INPCB); 892 COUNTER_INC(inpcb_create); 893} 894 895COUNTER_DECL(sysvmsg_create); 896static void | 887 struct inpcb *inp, struct label *inplabel) 888{ 889 890 LABEL_CHECK(solabel, MAGIC_SOCKET); 891 LABEL_CHECK(inplabel, MAGIC_INPCB); 892 COUNTER_INC(inpcb_create); 893} 894 895COUNTER_DECL(sysvmsg_create); 896static void |
897mac_test_sysvmsg_create(struct ucred *cred, struct msqid_kernel *msqkptr, | 897test_sysvmsg_create(struct ucred *cred, struct msqid_kernel *msqkptr, |
898 struct label *msqlabel, struct msg *msgptr, struct label *msglabel) 899{ 900 901 LABEL_CHECK(msglabel, MAGIC_SYSV_MSG); 902 LABEL_CHECK(msqlabel, MAGIC_SYSV_MSQ); 903 COUNTER_INC(sysvmsg_create); 904} 905 906COUNTER_DECL(sysvmsq_create); 907static void | 898 struct label *msqlabel, struct msg *msgptr, struct label *msglabel) 899{ 900 901 LABEL_CHECK(msglabel, MAGIC_SYSV_MSG); 902 LABEL_CHECK(msqlabel, MAGIC_SYSV_MSQ); 903 COUNTER_INC(sysvmsg_create); 904} 905 906COUNTER_DECL(sysvmsq_create); 907static void |
908mac_test_sysvmsq_create(struct ucred *cred, | 908test_sysvmsq_create(struct ucred *cred, |
909 struct msqid_kernel *msqkptr, struct label *msqlabel) 910{ 911 912 LABEL_CHECK(msqlabel, MAGIC_SYSV_MSQ); 913 COUNTER_INC(sysvmsq_create); 914} 915 916COUNTER_DECL(sysvsem_create); 917static void | 909 struct msqid_kernel *msqkptr, struct label *msqlabel) 910{ 911 912 LABEL_CHECK(msqlabel, MAGIC_SYSV_MSQ); 913 COUNTER_INC(sysvmsq_create); 914} 915 916COUNTER_DECL(sysvsem_create); 917static void |
918mac_test_sysvsem_create(struct ucred *cred, struct semid_kernel *semakptr, | 918test_sysvsem_create(struct ucred *cred, struct semid_kernel *semakptr, |
919 struct label *semalabel) 920{ 921 922 LABEL_CHECK(semalabel, MAGIC_SYSV_SEM); 923 COUNTER_INC(sysvsem_create); 924} 925 926COUNTER_DECL(sysvshm_create); 927static void | 919 struct label *semalabel) 920{ 921 922 LABEL_CHECK(semalabel, MAGIC_SYSV_SEM); 923 COUNTER_INC(sysvsem_create); 924} 925 926COUNTER_DECL(sysvshm_create); 927static void |
928mac_test_sysvshm_create(struct ucred *cred, struct shmid_kernel *shmsegptr, | 928test_sysvshm_create(struct ucred *cred, struct shmid_kernel *shmsegptr, |
929 struct label *shmlabel) 930{ 931 932 LABEL_CHECK(shmlabel, MAGIC_SYSV_SHM); 933 COUNTER_INC(sysvshm_create); 934} 935 936COUNTER_DECL(ipq_create); 937static void | 929 struct label *shmlabel) 930{ 931 932 LABEL_CHECK(shmlabel, MAGIC_SYSV_SHM); 933 COUNTER_INC(sysvshm_create); 934} 935 936COUNTER_DECL(ipq_create); 937static void |
938mac_test_ipq_create(struct mbuf *fragment, struct label *fragmentlabel, | 938test_ipq_create(struct mbuf *fragment, struct label *fragmentlabel, |
939 struct ipq *ipq, struct label *ipqlabel) 940{ 941 942 LABEL_CHECK(fragmentlabel, MAGIC_MBUF); 943 LABEL_CHECK(ipqlabel, MAGIC_IPQ); 944 COUNTER_INC(ipq_create); 945} 946 947COUNTER_DECL(inpcb_create_mbuf); 948static void | 939 struct ipq *ipq, struct label *ipqlabel) 940{ 941 942 LABEL_CHECK(fragmentlabel, MAGIC_MBUF); 943 LABEL_CHECK(ipqlabel, MAGIC_IPQ); 944 COUNTER_INC(ipq_create); 945} 946 947COUNTER_DECL(inpcb_create_mbuf); 948static void |
949mac_test_inpcb_create_mbuf(struct inpcb *inp, struct label *inplabel, | 949test_inpcb_create_mbuf(struct inpcb *inp, struct label *inplabel, |
950 struct mbuf *m, struct label *mlabel) 951{ 952 953 LABEL_CHECK(inplabel, MAGIC_INPCB); 954 LABEL_CHECK(mlabel, MAGIC_MBUF); 955 COUNTER_INC(inpcb_create_mbuf); 956} 957 958COUNTER_DECL(create_mbuf_linklayer); 959static void | 950 struct mbuf *m, struct label *mlabel) 951{ 952 953 LABEL_CHECK(inplabel, MAGIC_INPCB); 954 LABEL_CHECK(mlabel, MAGIC_MBUF); 955 COUNTER_INC(inpcb_create_mbuf); 956} 957 958COUNTER_DECL(create_mbuf_linklayer); 959static void |
960mac_test_create_mbuf_linklayer(struct ifnet *ifp, struct label *ifplabel, | 960test_create_mbuf_linklayer(struct ifnet *ifp, struct label *ifplabel, |
961 struct mbuf *mbuf, struct label *mbuflabel) 962{ 963 964 LABEL_CHECK(ifplabel, MAGIC_IFNET); 965 LABEL_CHECK(mbuflabel, MAGIC_MBUF); 966 COUNTER_INC(create_mbuf_linklayer); 967} 968 969COUNTER_DECL(bpfdesc_create_mbuf); 970static void | 961 struct mbuf *mbuf, struct label *mbuflabel) 962{ 963 964 LABEL_CHECK(ifplabel, MAGIC_IFNET); 965 LABEL_CHECK(mbuflabel, MAGIC_MBUF); 966 COUNTER_INC(create_mbuf_linklayer); 967} 968 969COUNTER_DECL(bpfdesc_create_mbuf); 970static void |
971mac_test_bpfdesc_create_mbuf(struct bpf_d *bpf_d, struct label *bpflabel, | 971test_bpfdesc_create_mbuf(struct bpf_d *bpf_d, struct label *bpflabel, |
972 struct mbuf *mbuf, struct label *mbuflabel) 973{ 974 975 LABEL_CHECK(bpflabel, MAGIC_BPF); 976 LABEL_CHECK(mbuflabel, MAGIC_MBUF); 977 COUNTER_INC(bpfdesc_create_mbuf); 978} 979 980COUNTER_DECL(ifnet_create_mbuf); 981static void | 972 struct mbuf *mbuf, struct label *mbuflabel) 973{ 974 975 LABEL_CHECK(bpflabel, MAGIC_BPF); 976 LABEL_CHECK(mbuflabel, MAGIC_MBUF); 977 COUNTER_INC(bpfdesc_create_mbuf); 978} 979 980COUNTER_DECL(ifnet_create_mbuf); 981static void |
982mac_test_ifnet_create_mbuf(struct ifnet *ifp, struct label *ifplabel, | 982test_ifnet_create_mbuf(struct ifnet *ifp, struct label *ifplabel, |
983 struct mbuf *m, struct label *mbuflabel) 984{ 985 986 LABEL_CHECK(ifplabel, MAGIC_IFNET); 987 LABEL_CHECK(mbuflabel, MAGIC_MBUF); 988 COUNTER_INC(ifnet_create_mbuf); 989} 990 991COUNTER_DECL(mbuf_create_multicast_encap); 992static void | 983 struct mbuf *m, struct label *mbuflabel) 984{ 985 986 LABEL_CHECK(ifplabel, MAGIC_IFNET); 987 LABEL_CHECK(mbuflabel, MAGIC_MBUF); 988 COUNTER_INC(ifnet_create_mbuf); 989} 990 991COUNTER_DECL(mbuf_create_multicast_encap); 992static void |
993mac_test_mbuf_create_multicast_encap(struct mbuf *oldmbuf, | 993test_mbuf_create_multicast_encap(struct mbuf *oldmbuf, |
994 struct label *oldmbuflabel, struct ifnet *ifp, struct label *ifplabel, 995 struct mbuf *newmbuf, struct label *newmbuflabel) 996{ 997 998 LABEL_CHECK(oldmbuflabel, MAGIC_MBUF); 999 LABEL_CHECK(ifplabel, MAGIC_IFNET); 1000 LABEL_CHECK(newmbuflabel, MAGIC_MBUF); 1001 COUNTER_INC(mbuf_create_multicast_encap); 1002} 1003 1004COUNTER_DECL(mbuf_create_netlayer); 1005static void | 994 struct label *oldmbuflabel, struct ifnet *ifp, struct label *ifplabel, 995 struct mbuf *newmbuf, struct label *newmbuflabel) 996{ 997 998 LABEL_CHECK(oldmbuflabel, MAGIC_MBUF); 999 LABEL_CHECK(ifplabel, MAGIC_IFNET); 1000 LABEL_CHECK(newmbuflabel, MAGIC_MBUF); 1001 COUNTER_INC(mbuf_create_multicast_encap); 1002} 1003 1004COUNTER_DECL(mbuf_create_netlayer); 1005static void |
1006mac_test_mbuf_create_netlayer(struct mbuf *oldmbuf, | 1006test_mbuf_create_netlayer(struct mbuf *oldmbuf, |
1007 struct label *oldmbuflabel, struct mbuf *newmbuf, 1008 struct label *newmbuflabel) 1009{ 1010 1011 LABEL_CHECK(oldmbuflabel, MAGIC_MBUF); 1012 LABEL_CHECK(newmbuflabel, MAGIC_MBUF); 1013 COUNTER_INC(mbuf_create_netlayer); 1014} 1015 1016COUNTER_DECL(ipq_match); 1017static int | 1007 struct label *oldmbuflabel, struct mbuf *newmbuf, 1008 struct label *newmbuflabel) 1009{ 1010 1011 LABEL_CHECK(oldmbuflabel, MAGIC_MBUF); 1012 LABEL_CHECK(newmbuflabel, MAGIC_MBUF); 1013 COUNTER_INC(mbuf_create_netlayer); 1014} 1015 1016COUNTER_DECL(ipq_match); 1017static int |
1018mac_test_ipq_match(struct mbuf *fragment, struct label *fragmentlabel, | 1018test_ipq_match(struct mbuf *fragment, struct label *fragmentlabel, |
1019 struct ipq *ipq, struct label *ipqlabel) 1020{ 1021 1022 LABEL_CHECK(fragmentlabel, MAGIC_MBUF); 1023 LABEL_CHECK(ipqlabel, MAGIC_IPQ); 1024 COUNTER_INC(ipq_match); 1025 1026 return (1); 1027} 1028 1029COUNTER_DECL(netinet_icmp_reply); 1030static void | 1019 struct ipq *ipq, struct label *ipqlabel) 1020{ 1021 1022 LABEL_CHECK(fragmentlabel, MAGIC_MBUF); 1023 LABEL_CHECK(ipqlabel, MAGIC_IPQ); 1024 COUNTER_INC(ipq_match); 1025 1026 return (1); 1027} 1028 1029COUNTER_DECL(netinet_icmp_reply); 1030static void |
1031mac_test_netinet_icmp_reply(struct mbuf *m, struct label *mlabel) | 1031test_netinet_icmp_reply(struct mbuf *m, struct label *mlabel) |
1032{ 1033 1034 LABEL_CHECK(mlabel, MAGIC_MBUF); 1035 COUNTER_INC(netinet_icmp_reply); 1036} 1037 1038COUNTER_DECL(netinet_tcp_reply); 1039static void | 1032{ 1033 1034 LABEL_CHECK(mlabel, MAGIC_MBUF); 1035 COUNTER_INC(netinet_icmp_reply); 1036} 1037 1038COUNTER_DECL(netinet_tcp_reply); 1039static void |
1040mac_test_netinet_tcp_reply(struct mbuf *m, struct label *mlabel) | 1040test_netinet_tcp_reply(struct mbuf *m, struct label *mlabel) |
1041{ 1042 1043 LABEL_CHECK(mlabel, MAGIC_MBUF); 1044 COUNTER_INC(netinet_tcp_reply); 1045} 1046 1047COUNTER_DECL(ifnet_relabel); 1048static void | 1041{ 1042 1043 LABEL_CHECK(mlabel, MAGIC_MBUF); 1044 COUNTER_INC(netinet_tcp_reply); 1045} 1046 1047COUNTER_DECL(ifnet_relabel); 1048static void |
1049mac_test_ifnet_relabel(struct ucred *cred, struct ifnet *ifp, | 1049test_ifnet_relabel(struct ucred *cred, struct ifnet *ifp, |
1050 struct label *ifplabel, struct label *newlabel) 1051{ 1052 1053 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1054 LABEL_CHECK(ifplabel, MAGIC_IFNET); 1055 LABEL_CHECK(newlabel, MAGIC_IFNET); 1056 COUNTER_INC(ifnet_relabel); 1057} 1058 1059COUNTER_DECL(ipq_update); 1060static void | 1050 struct label *ifplabel, struct label *newlabel) 1051{ 1052 1053 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1054 LABEL_CHECK(ifplabel, MAGIC_IFNET); 1055 LABEL_CHECK(newlabel, MAGIC_IFNET); 1056 COUNTER_INC(ifnet_relabel); 1057} 1058 1059COUNTER_DECL(ipq_update); 1060static void |
1061mac_test_ipq_update(struct mbuf *fragment, struct label *fragmentlabel, | 1061test_ipq_update(struct mbuf *fragment, struct label *fragmentlabel, |
1062 struct ipq *ipq, struct label *ipqlabel) 1063{ 1064 1065 LABEL_CHECK(fragmentlabel, MAGIC_MBUF); 1066 LABEL_CHECK(ipqlabel, MAGIC_IPQ); 1067 COUNTER_INC(ipq_update); 1068} 1069 1070COUNTER_DECL(inpcb_sosetlabel); 1071static void | 1062 struct ipq *ipq, struct label *ipqlabel) 1063{ 1064 1065 LABEL_CHECK(fragmentlabel, MAGIC_MBUF); 1066 LABEL_CHECK(ipqlabel, MAGIC_IPQ); 1067 COUNTER_INC(ipq_update); 1068} 1069 1070COUNTER_DECL(inpcb_sosetlabel); 1071static void |
1072mac_test_inpcb_sosetlabel(struct socket *so, struct label *solabel, | 1072test_inpcb_sosetlabel(struct socket *so, struct label *solabel, |
1073 struct inpcb *inp, struct label *inplabel) 1074{ 1075 1076 LABEL_CHECK(solabel, MAGIC_SOCKET); 1077 LABEL_CHECK(inplabel, MAGIC_INPCB); 1078 COUNTER_INC(inpcb_sosetlabel); 1079} 1080 1081/* 1082 * Labeling event operations: processes. 1083 */ 1084COUNTER_DECL(vnode_execve_transition); 1085static void | 1073 struct inpcb *inp, struct label *inplabel) 1074{ 1075 1076 LABEL_CHECK(solabel, MAGIC_SOCKET); 1077 LABEL_CHECK(inplabel, MAGIC_INPCB); 1078 COUNTER_INC(inpcb_sosetlabel); 1079} 1080 1081/* 1082 * Labeling event operations: processes. 1083 */ 1084COUNTER_DECL(vnode_execve_transition); 1085static void |
1086mac_test_vnode_execve_transition(struct ucred *old, struct ucred *new, | 1086test_vnode_execve_transition(struct ucred *old, struct ucred *new, |
1087 struct vnode *vp, struct label *filelabel, 1088 struct label *interpvplabel, struct image_params *imgp, 1089 struct label *execlabel) 1090{ 1091 1092 LABEL_CHECK(old->cr_label, MAGIC_CRED); 1093 LABEL_CHECK(new->cr_label, MAGIC_CRED); 1094 LABEL_CHECK(filelabel, MAGIC_VNODE); 1095 LABEL_CHECK(interpvplabel, MAGIC_VNODE); 1096 LABEL_CHECK(execlabel, MAGIC_CRED); 1097 COUNTER_INC(vnode_execve_transition); 1098} 1099 1100COUNTER_DECL(vnode_execve_will_transition); 1101static int | 1087 struct vnode *vp, struct label *filelabel, 1088 struct label *interpvplabel, struct image_params *imgp, 1089 struct label *execlabel) 1090{ 1091 1092 LABEL_CHECK(old->cr_label, MAGIC_CRED); 1093 LABEL_CHECK(new->cr_label, MAGIC_CRED); 1094 LABEL_CHECK(filelabel, MAGIC_VNODE); 1095 LABEL_CHECK(interpvplabel, MAGIC_VNODE); 1096 LABEL_CHECK(execlabel, MAGIC_CRED); 1097 COUNTER_INC(vnode_execve_transition); 1098} 1099 1100COUNTER_DECL(vnode_execve_will_transition); 1101static int |
1102mac_test_vnode_execve_will_transition(struct ucred *old, struct vnode *vp, | 1102test_vnode_execve_will_transition(struct ucred *old, struct vnode *vp, |
1103 struct label *filelabel, struct label *interpvplabel, 1104 struct image_params *imgp, struct label *execlabel) 1105{ 1106 1107 LABEL_CHECK(old->cr_label, MAGIC_CRED); 1108 LABEL_CHECK(filelabel, MAGIC_VNODE); 1109 LABEL_CHECK(interpvplabel, MAGIC_VNODE); 1110 LABEL_CHECK(execlabel, MAGIC_CRED); 1111 COUNTER_INC(vnode_execve_will_transition); 1112 1113 return (0); 1114} 1115 1116COUNTER_DECL(proc_create_swapper); 1117static void | 1103 struct label *filelabel, struct label *interpvplabel, 1104 struct image_params *imgp, struct label *execlabel) 1105{ 1106 1107 LABEL_CHECK(old->cr_label, MAGIC_CRED); 1108 LABEL_CHECK(filelabel, MAGIC_VNODE); 1109 LABEL_CHECK(interpvplabel, MAGIC_VNODE); 1110 LABEL_CHECK(execlabel, MAGIC_CRED); 1111 COUNTER_INC(vnode_execve_will_transition); 1112 1113 return (0); 1114} 1115 1116COUNTER_DECL(proc_create_swapper); 1117static void |
1118mac_test_proc_create_swapper(struct ucred *cred) | 1118test_proc_create_swapper(struct ucred *cred) |
1119{ 1120 1121 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1122 COUNTER_INC(proc_create_swapper); 1123} 1124 1125COUNTER_DECL(proc_create_init); 1126static void | 1119{ 1120 1121 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1122 COUNTER_INC(proc_create_swapper); 1123} 1124 1125COUNTER_DECL(proc_create_init); 1126static void |
1127mac_test_proc_create_init(struct ucred *cred) | 1127test_proc_create_init(struct ucred *cred) |
1128{ 1129 1130 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1131 COUNTER_INC(proc_create_init); 1132} 1133 1134COUNTER_DECL(cred_relabel); 1135static void | 1128{ 1129 1130 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1131 COUNTER_INC(proc_create_init); 1132} 1133 1134COUNTER_DECL(cred_relabel); 1135static void |
1136mac_test_cred_relabel(struct ucred *cred, struct label *newlabel) | 1136test_cred_relabel(struct ucred *cred, struct label *newlabel) |
1137{ 1138 1139 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1140 LABEL_CHECK(newlabel, MAGIC_CRED); 1141 COUNTER_INC(cred_relabel); 1142} 1143 1144COUNTER_DECL(thread_userret); 1145static void | 1137{ 1138 1139 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1140 LABEL_CHECK(newlabel, MAGIC_CRED); 1141 COUNTER_INC(cred_relabel); 1142} 1143 1144COUNTER_DECL(thread_userret); 1145static void |
1146mac_test_thread_userret(struct thread *td) | 1146test_thread_userret(struct thread *td) |
1147{ 1148 1149 COUNTER_INC(thread_userret); 1150} 1151 1152/* 1153 * Label cleanup/flush operations 1154 */ 1155COUNTER_DECL(sysvmsg_cleanup); 1156static void | 1147{ 1148 1149 COUNTER_INC(thread_userret); 1150} 1151 1152/* 1153 * Label cleanup/flush operations 1154 */ 1155COUNTER_DECL(sysvmsg_cleanup); 1156static void |
1157mac_test_sysvmsg_cleanup(struct label *msglabel) | 1157test_sysvmsg_cleanup(struct label *msglabel) |
1158{ 1159 1160 LABEL_CHECK(msglabel, MAGIC_SYSV_MSG); 1161 COUNTER_INC(sysvmsg_cleanup); 1162} 1163 1164COUNTER_DECL(sysvmsq_cleanup); 1165static void | 1158{ 1159 1160 LABEL_CHECK(msglabel, MAGIC_SYSV_MSG); 1161 COUNTER_INC(sysvmsg_cleanup); 1162} 1163 1164COUNTER_DECL(sysvmsq_cleanup); 1165static void |
1166mac_test_sysvmsq_cleanup(struct label *msqlabel) | 1166test_sysvmsq_cleanup(struct label *msqlabel) |
1167{ 1168 1169 LABEL_CHECK(msqlabel, MAGIC_SYSV_MSQ); 1170 COUNTER_INC(sysvmsq_cleanup); 1171} 1172 1173COUNTER_DECL(sysvsem_cleanup); 1174static void | 1167{ 1168 1169 LABEL_CHECK(msqlabel, MAGIC_SYSV_MSQ); 1170 COUNTER_INC(sysvmsq_cleanup); 1171} 1172 1173COUNTER_DECL(sysvsem_cleanup); 1174static void |
1175mac_test_sysvsem_cleanup(struct label *semalabel) | 1175test_sysvsem_cleanup(struct label *semalabel) |
1176{ 1177 1178 LABEL_CHECK(semalabel, MAGIC_SYSV_SEM); 1179 COUNTER_INC(sysvsem_cleanup); 1180} 1181 1182COUNTER_DECL(sysvshm_cleanup); 1183static void | 1176{ 1177 1178 LABEL_CHECK(semalabel, MAGIC_SYSV_SEM); 1179 COUNTER_INC(sysvsem_cleanup); 1180} 1181 1182COUNTER_DECL(sysvshm_cleanup); 1183static void |
1184mac_test_sysvshm_cleanup(struct label *shmlabel) | 1184test_sysvshm_cleanup(struct label *shmlabel) |
1185{ 1186 1187 LABEL_CHECK(shmlabel, MAGIC_SYSV_SHM); 1188 COUNTER_INC(sysvshm_cleanup); 1189} 1190 1191/* 1192 * Access control checks. 1193 */ 1194COUNTER_DECL(bpfdesc_check_receive); 1195static int | 1185{ 1186 1187 LABEL_CHECK(shmlabel, MAGIC_SYSV_SHM); 1188 COUNTER_INC(sysvshm_cleanup); 1189} 1190 1191/* 1192 * Access control checks. 1193 */ 1194COUNTER_DECL(bpfdesc_check_receive); 1195static int |
1196mac_test_bpfdesc_check_receive(struct bpf_d *bpf_d, struct label *bpflabel, | 1196test_bpfdesc_check_receive(struct bpf_d *bpf_d, struct label *bpflabel, |
1197 struct ifnet *ifp, struct label *ifplabel) 1198{ 1199 1200 LABEL_CHECK(bpflabel, MAGIC_BPF); 1201 LABEL_CHECK(ifplabel, MAGIC_IFNET); 1202 COUNTER_INC(bpfdesc_check_receive); 1203 1204 return (0); 1205} 1206 1207COUNTER_DECL(cred_check_relabel); 1208static int | 1197 struct ifnet *ifp, struct label *ifplabel) 1198{ 1199 1200 LABEL_CHECK(bpflabel, MAGIC_BPF); 1201 LABEL_CHECK(ifplabel, MAGIC_IFNET); 1202 COUNTER_INC(bpfdesc_check_receive); 1203 1204 return (0); 1205} 1206 1207COUNTER_DECL(cred_check_relabel); 1208static int |
1209mac_test_cred_check_relabel(struct ucred *cred, struct label *newlabel) | 1209test_cred_check_relabel(struct ucred *cred, struct label *newlabel) |
1210{ 1211 1212 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1213 LABEL_CHECK(newlabel, MAGIC_CRED); 1214 COUNTER_INC(cred_check_relabel); 1215 1216 return (0); 1217} 1218 1219COUNTER_DECL(cred_check_visible); 1220static int | 1210{ 1211 1212 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1213 LABEL_CHECK(newlabel, MAGIC_CRED); 1214 COUNTER_INC(cred_check_relabel); 1215 1216 return (0); 1217} 1218 1219COUNTER_DECL(cred_check_visible); 1220static int |
1221mac_test_cred_check_visible(struct ucred *u1, struct ucred *u2) | 1221test_cred_check_visible(struct ucred *u1, struct ucred *u2) |
1222{ 1223 1224 LABEL_CHECK(u1->cr_label, MAGIC_CRED); 1225 LABEL_CHECK(u2->cr_label, MAGIC_CRED); 1226 COUNTER_INC(cred_check_visible); 1227 1228 return (0); 1229} 1230 1231COUNTER_DECL(ifnet_check_relabel); 1232static int | 1222{ 1223 1224 LABEL_CHECK(u1->cr_label, MAGIC_CRED); 1225 LABEL_CHECK(u2->cr_label, MAGIC_CRED); 1226 COUNTER_INC(cred_check_visible); 1227 1228 return (0); 1229} 1230 1231COUNTER_DECL(ifnet_check_relabel); 1232static int |
1233mac_test_ifnet_check_relabel(struct ucred *cred, struct ifnet *ifp, | 1233test_ifnet_check_relabel(struct ucred *cred, struct ifnet *ifp, |
1234 struct label *ifplabel, struct label *newlabel) 1235{ 1236 1237 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1238 LABEL_CHECK(ifplabel, MAGIC_IFNET); 1239 LABEL_CHECK(newlabel, MAGIC_IFNET); 1240 COUNTER_INC(ifnet_check_relabel); 1241 1242 return (0); 1243} 1244 1245COUNTER_DECL(ifnet_check_transmit); 1246static int | 1234 struct label *ifplabel, struct label *newlabel) 1235{ 1236 1237 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1238 LABEL_CHECK(ifplabel, MAGIC_IFNET); 1239 LABEL_CHECK(newlabel, MAGIC_IFNET); 1240 COUNTER_INC(ifnet_check_relabel); 1241 1242 return (0); 1243} 1244 1245COUNTER_DECL(ifnet_check_transmit); 1246static int |
1247mac_test_ifnet_check_transmit(struct ifnet *ifp, struct label *ifplabel, | 1247test_ifnet_check_transmit(struct ifnet *ifp, struct label *ifplabel, |
1248 struct mbuf *m, struct label *mbuflabel) 1249{ 1250 1251 LABEL_CHECK(ifplabel, MAGIC_IFNET); 1252 LABEL_CHECK(mbuflabel, MAGIC_MBUF); 1253 COUNTER_INC(ifnet_check_transmit); 1254 1255 return (0); 1256} 1257 1258COUNTER_DECL(inpcb_check_deliver); 1259static int | 1248 struct mbuf *m, struct label *mbuflabel) 1249{ 1250 1251 LABEL_CHECK(ifplabel, MAGIC_IFNET); 1252 LABEL_CHECK(mbuflabel, MAGIC_MBUF); 1253 COUNTER_INC(ifnet_check_transmit); 1254 1255 return (0); 1256} 1257 1258COUNTER_DECL(inpcb_check_deliver); 1259static int |
1260mac_test_inpcb_check_deliver(struct inpcb *inp, struct label *inplabel, | 1260test_inpcb_check_deliver(struct inpcb *inp, struct label *inplabel, |
1261 struct mbuf *m, struct label *mlabel) 1262{ 1263 1264 LABEL_CHECK(inplabel, MAGIC_INPCB); 1265 LABEL_CHECK(mlabel, MAGIC_MBUF); 1266 COUNTER_INC(inpcb_check_deliver); 1267 1268 return (0); 1269} 1270 1271COUNTER_DECL(sysvmsq_check_msgmsq); 1272static int | 1261 struct mbuf *m, struct label *mlabel) 1262{ 1263 1264 LABEL_CHECK(inplabel, MAGIC_INPCB); 1265 LABEL_CHECK(mlabel, MAGIC_MBUF); 1266 COUNTER_INC(inpcb_check_deliver); 1267 1268 return (0); 1269} 1270 1271COUNTER_DECL(sysvmsq_check_msgmsq); 1272static int |
1273mac_test_sysvmsq_check_msgmsq(struct ucred *cred, struct msg *msgptr, | 1273test_sysvmsq_check_msgmsq(struct ucred *cred, struct msg *msgptr, |
1274 struct label *msglabel, struct msqid_kernel *msqkptr, 1275 struct label *msqklabel) 1276{ 1277 1278 LABEL_CHECK(msqklabel, MAGIC_SYSV_MSQ); 1279 LABEL_CHECK(msglabel, MAGIC_SYSV_MSG); 1280 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1281 COUNTER_INC(sysvmsq_check_msgmsq); 1282 1283 return (0); 1284} 1285 1286COUNTER_DECL(sysvmsq_check_msgrcv); 1287static int | 1274 struct label *msglabel, struct msqid_kernel *msqkptr, 1275 struct label *msqklabel) 1276{ 1277 1278 LABEL_CHECK(msqklabel, MAGIC_SYSV_MSQ); 1279 LABEL_CHECK(msglabel, MAGIC_SYSV_MSG); 1280 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1281 COUNTER_INC(sysvmsq_check_msgmsq); 1282 1283 return (0); 1284} 1285 1286COUNTER_DECL(sysvmsq_check_msgrcv); 1287static int |
1288mac_test_sysvmsq_check_msgrcv(struct ucred *cred, struct msg *msgptr, | 1288test_sysvmsq_check_msgrcv(struct ucred *cred, struct msg *msgptr, |
1289 struct label *msglabel) 1290{ 1291 1292 LABEL_CHECK(msglabel, MAGIC_SYSV_MSG); 1293 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1294 COUNTER_INC(sysvmsq_check_msgrcv); 1295 1296 return (0); 1297} 1298 1299COUNTER_DECL(sysvmsq_check_msgrmid); 1300static int | 1289 struct label *msglabel) 1290{ 1291 1292 LABEL_CHECK(msglabel, MAGIC_SYSV_MSG); 1293 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1294 COUNTER_INC(sysvmsq_check_msgrcv); 1295 1296 return (0); 1297} 1298 1299COUNTER_DECL(sysvmsq_check_msgrmid); 1300static int |
1301mac_test_sysvmsq_check_msgrmid(struct ucred *cred, struct msg *msgptr, | 1301test_sysvmsq_check_msgrmid(struct ucred *cred, struct msg *msgptr, |
1302 struct label *msglabel) 1303{ 1304 1305 LABEL_CHECK(msglabel, MAGIC_SYSV_MSG); 1306 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1307 COUNTER_INC(sysvmsq_check_msgrmid); 1308 1309 return (0); 1310} 1311 1312COUNTER_DECL(sysvmsq_check_msqget); 1313static int | 1302 struct label *msglabel) 1303{ 1304 1305 LABEL_CHECK(msglabel, MAGIC_SYSV_MSG); 1306 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1307 COUNTER_INC(sysvmsq_check_msgrmid); 1308 1309 return (0); 1310} 1311 1312COUNTER_DECL(sysvmsq_check_msqget); 1313static int |
1314mac_test_sysvmsq_check_msqget(struct ucred *cred, | 1314test_sysvmsq_check_msqget(struct ucred *cred, |
1315 struct msqid_kernel *msqkptr, struct label *msqklabel) 1316{ 1317 1318 LABEL_CHECK(msqklabel, MAGIC_SYSV_MSQ); 1319 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1320 COUNTER_INC(sysvmsq_check_msqget); 1321 1322 return (0); 1323} 1324 1325COUNTER_DECL(sysvmsq_check_msqsnd); 1326static int | 1315 struct msqid_kernel *msqkptr, struct label *msqklabel) 1316{ 1317 1318 LABEL_CHECK(msqklabel, MAGIC_SYSV_MSQ); 1319 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1320 COUNTER_INC(sysvmsq_check_msqget); 1321 1322 return (0); 1323} 1324 1325COUNTER_DECL(sysvmsq_check_msqsnd); 1326static int |
1327mac_test_sysvmsq_check_msqsnd(struct ucred *cred, | 1327test_sysvmsq_check_msqsnd(struct ucred *cred, |
1328 struct msqid_kernel *msqkptr, struct label *msqklabel) 1329{ 1330 1331 LABEL_CHECK(msqklabel, MAGIC_SYSV_MSQ); 1332 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1333 COUNTER_INC(sysvmsq_check_msqsnd); 1334 1335 return (0); 1336} 1337 1338COUNTER_DECL(sysvmsq_check_msqrcv); 1339static int | 1328 struct msqid_kernel *msqkptr, struct label *msqklabel) 1329{ 1330 1331 LABEL_CHECK(msqklabel, MAGIC_SYSV_MSQ); 1332 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1333 COUNTER_INC(sysvmsq_check_msqsnd); 1334 1335 return (0); 1336} 1337 1338COUNTER_DECL(sysvmsq_check_msqrcv); 1339static int |
1340mac_test_sysvmsq_check_msqrcv(struct ucred *cred, | 1340test_sysvmsq_check_msqrcv(struct ucred *cred, |
1341 struct msqid_kernel *msqkptr, struct label *msqklabel) 1342{ 1343 1344 LABEL_CHECK(msqklabel, MAGIC_SYSV_MSQ); 1345 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1346 COUNTER_INC(sysvmsq_check_msqrcv); 1347 1348 return (0); 1349} 1350 1351COUNTER_DECL(sysvmsq_check_msqctl); 1352static int | 1341 struct msqid_kernel *msqkptr, struct label *msqklabel) 1342{ 1343 1344 LABEL_CHECK(msqklabel, MAGIC_SYSV_MSQ); 1345 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1346 COUNTER_INC(sysvmsq_check_msqrcv); 1347 1348 return (0); 1349} 1350 1351COUNTER_DECL(sysvmsq_check_msqctl); 1352static int |
1353mac_test_sysvmsq_check_msqctl(struct ucred *cred, | 1353test_sysvmsq_check_msqctl(struct ucred *cred, |
1354 struct msqid_kernel *msqkptr, struct label *msqklabel, int cmd) 1355{ 1356 1357 LABEL_CHECK(msqklabel, MAGIC_SYSV_MSQ); 1358 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1359 COUNTER_INC(sysvmsq_check_msqctl); 1360 1361 return (0); 1362} 1363 1364COUNTER_DECL(sysvsem_check_semctl); 1365static int | 1354 struct msqid_kernel *msqkptr, struct label *msqklabel, int cmd) 1355{ 1356 1357 LABEL_CHECK(msqklabel, MAGIC_SYSV_MSQ); 1358 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1359 COUNTER_INC(sysvmsq_check_msqctl); 1360 1361 return (0); 1362} 1363 1364COUNTER_DECL(sysvsem_check_semctl); 1365static int |
1366mac_test_sysvsem_check_semctl(struct ucred *cred, | 1366test_sysvsem_check_semctl(struct ucred *cred, |
1367 struct semid_kernel *semakptr, struct label *semaklabel, int cmd) 1368{ 1369 1370 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1371 LABEL_CHECK(semaklabel, MAGIC_SYSV_SEM); 1372 COUNTER_INC(sysvsem_check_semctl); 1373 1374 return (0); 1375} 1376 1377COUNTER_DECL(sysvsem_check_semget); 1378static int | 1367 struct semid_kernel *semakptr, struct label *semaklabel, int cmd) 1368{ 1369 1370 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1371 LABEL_CHECK(semaklabel, MAGIC_SYSV_SEM); 1372 COUNTER_INC(sysvsem_check_semctl); 1373 1374 return (0); 1375} 1376 1377COUNTER_DECL(sysvsem_check_semget); 1378static int |
1379mac_test_sysvsem_check_semget(struct ucred *cred, | 1379test_sysvsem_check_semget(struct ucred *cred, |
1380 struct semid_kernel *semakptr, struct label *semaklabel) 1381{ 1382 1383 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1384 LABEL_CHECK(semaklabel, MAGIC_SYSV_SEM); 1385 COUNTER_INC(sysvsem_check_semget); 1386 1387 return (0); 1388} 1389 1390COUNTER_DECL(sysvsem_check_semop); 1391static int | 1380 struct semid_kernel *semakptr, struct label *semaklabel) 1381{ 1382 1383 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1384 LABEL_CHECK(semaklabel, MAGIC_SYSV_SEM); 1385 COUNTER_INC(sysvsem_check_semget); 1386 1387 return (0); 1388} 1389 1390COUNTER_DECL(sysvsem_check_semop); 1391static int |
1392mac_test_sysvsem_check_semop(struct ucred *cred, | 1392test_sysvsem_check_semop(struct ucred *cred, |
1393 struct semid_kernel *semakptr, struct label *semaklabel, size_t accesstype) 1394{ 1395 1396 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1397 LABEL_CHECK(semaklabel, MAGIC_SYSV_SEM); 1398 COUNTER_INC(sysvsem_check_semop); 1399 1400 return (0); 1401} 1402 1403COUNTER_DECL(sysvshm_check_shmat); 1404static int | 1393 struct semid_kernel *semakptr, struct label *semaklabel, size_t accesstype) 1394{ 1395 1396 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1397 LABEL_CHECK(semaklabel, MAGIC_SYSV_SEM); 1398 COUNTER_INC(sysvsem_check_semop); 1399 1400 return (0); 1401} 1402 1403COUNTER_DECL(sysvshm_check_shmat); 1404static int |
1405mac_test_sysvshm_check_shmat(struct ucred *cred, | 1405test_sysvshm_check_shmat(struct ucred *cred, |
1406 struct shmid_kernel *shmsegptr, struct label *shmseglabel, int shmflg) 1407{ 1408 1409 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1410 LABEL_CHECK(shmseglabel, MAGIC_SYSV_SHM); 1411 COUNTER_INC(sysvshm_check_shmat); 1412 1413 return (0); 1414} 1415 1416COUNTER_DECL(sysvshm_check_shmctl); 1417static int | 1406 struct shmid_kernel *shmsegptr, struct label *shmseglabel, int shmflg) 1407{ 1408 1409 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1410 LABEL_CHECK(shmseglabel, MAGIC_SYSV_SHM); 1411 COUNTER_INC(sysvshm_check_shmat); 1412 1413 return (0); 1414} 1415 1416COUNTER_DECL(sysvshm_check_shmctl); 1417static int |
1418mac_test_sysvshm_check_shmctl(struct ucred *cred, | 1418test_sysvshm_check_shmctl(struct ucred *cred, |
1419 struct shmid_kernel *shmsegptr, struct label *shmseglabel, int cmd) 1420{ 1421 1422 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1423 LABEL_CHECK(shmseglabel, MAGIC_SYSV_SHM); 1424 COUNTER_INC(sysvshm_check_shmctl); 1425 1426 return (0); 1427} 1428 1429COUNTER_DECL(sysvshm_check_shmdt); 1430static int | 1419 struct shmid_kernel *shmsegptr, struct label *shmseglabel, int cmd) 1420{ 1421 1422 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1423 LABEL_CHECK(shmseglabel, MAGIC_SYSV_SHM); 1424 COUNTER_INC(sysvshm_check_shmctl); 1425 1426 return (0); 1427} 1428 1429COUNTER_DECL(sysvshm_check_shmdt); 1430static int |
1431mac_test_sysvshm_check_shmdt(struct ucred *cred, | 1431test_sysvshm_check_shmdt(struct ucred *cred, |
1432 struct shmid_kernel *shmsegptr, struct label *shmseglabel) 1433{ 1434 1435 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1436 LABEL_CHECK(shmseglabel, MAGIC_SYSV_SHM); 1437 COUNTER_INC(sysvshm_check_shmdt); 1438 1439 return (0); 1440} 1441 1442COUNTER_DECL(sysvshm_check_shmget); 1443static int | 1432 struct shmid_kernel *shmsegptr, struct label *shmseglabel) 1433{ 1434 1435 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1436 LABEL_CHECK(shmseglabel, MAGIC_SYSV_SHM); 1437 COUNTER_INC(sysvshm_check_shmdt); 1438 1439 return (0); 1440} 1441 1442COUNTER_DECL(sysvshm_check_shmget); 1443static int |
1444mac_test_sysvshm_check_shmget(struct ucred *cred, | 1444test_sysvshm_check_shmget(struct ucred *cred, |
1445 struct shmid_kernel *shmsegptr, struct label *shmseglabel, int shmflg) 1446{ 1447 1448 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1449 LABEL_CHECK(shmseglabel, MAGIC_SYSV_SHM); 1450 COUNTER_INC(sysvshm_check_shmget); 1451 1452 return (0); 1453} 1454 1455COUNTER_DECL(kenv_check_dump); 1456static int | 1445 struct shmid_kernel *shmsegptr, struct label *shmseglabel, int shmflg) 1446{ 1447 1448 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1449 LABEL_CHECK(shmseglabel, MAGIC_SYSV_SHM); 1450 COUNTER_INC(sysvshm_check_shmget); 1451 1452 return (0); 1453} 1454 1455COUNTER_DECL(kenv_check_dump); 1456static int |
1457mac_test_kenv_check_dump(struct ucred *cred) | 1457test_kenv_check_dump(struct ucred *cred) |
1458{ 1459 1460 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1461 COUNTER_INC(kenv_check_dump); 1462 1463 return (0); 1464} 1465 1466COUNTER_DECL(kenv_check_get); 1467static int | 1458{ 1459 1460 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1461 COUNTER_INC(kenv_check_dump); 1462 1463 return (0); 1464} 1465 1466COUNTER_DECL(kenv_check_get); 1467static int |
1468mac_test_kenv_check_get(struct ucred *cred, char *name) | 1468test_kenv_check_get(struct ucred *cred, char *name) |
1469{ 1470 1471 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1472 COUNTER_INC(kenv_check_get); 1473 1474 return (0); 1475} 1476 1477COUNTER_DECL(kenv_check_set); 1478static int | 1469{ 1470 1471 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1472 COUNTER_INC(kenv_check_get); 1473 1474 return (0); 1475} 1476 1477COUNTER_DECL(kenv_check_set); 1478static int |
1479mac_test_kenv_check_set(struct ucred *cred, char *name, char *value) | 1479test_kenv_check_set(struct ucred *cred, char *name, char *value) |
1480{ 1481 1482 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1483 COUNTER_INC(kenv_check_set); 1484 1485 return (0); 1486} 1487 1488COUNTER_DECL(kenv_check_unset); 1489static int | 1480{ 1481 1482 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1483 COUNTER_INC(kenv_check_set); 1484 1485 return (0); 1486} 1487 1488COUNTER_DECL(kenv_check_unset); 1489static int |
1490mac_test_kenv_check_unset(struct ucred *cred, char *name) | 1490test_kenv_check_unset(struct ucred *cred, char *name) |
1491{ 1492 1493 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1494 COUNTER_INC(kenv_check_unset); 1495 1496 return (0); 1497} 1498 1499COUNTER_DECL(kld_check_load); 1500static int | 1491{ 1492 1493 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1494 COUNTER_INC(kenv_check_unset); 1495 1496 return (0); 1497} 1498 1499COUNTER_DECL(kld_check_load); 1500static int |
1501mac_test_kld_check_load(struct ucred *cred, struct vnode *vp, | 1501test_kld_check_load(struct ucred *cred, struct vnode *vp, |
1502 struct label *label) 1503{ 1504 1505 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1506 LABEL_CHECK(label, MAGIC_VNODE); 1507 COUNTER_INC(kld_check_load); 1508 1509 return (0); 1510} 1511 1512COUNTER_DECL(kld_check_stat); 1513static int | 1502 struct label *label) 1503{ 1504 1505 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1506 LABEL_CHECK(label, MAGIC_VNODE); 1507 COUNTER_INC(kld_check_load); 1508 1509 return (0); 1510} 1511 1512COUNTER_DECL(kld_check_stat); 1513static int |
1514mac_test_kld_check_stat(struct ucred *cred) | 1514test_kld_check_stat(struct ucred *cred) |
1515{ 1516 1517 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1518 COUNTER_INC(kld_check_stat); 1519 1520 return (0); 1521} 1522 1523COUNTER_DECL(mount_check_stat); 1524static int | 1515{ 1516 1517 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1518 COUNTER_INC(kld_check_stat); 1519 1520 return (0); 1521} 1522 1523COUNTER_DECL(mount_check_stat); 1524static int |
1525mac_test_mount_check_stat(struct ucred *cred, struct mount *mp, | 1525test_mount_check_stat(struct ucred *cred, struct mount *mp, |
1526 struct label *mplabel) 1527{ 1528 1529 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1530 LABEL_CHECK(mplabel, MAGIC_MOUNT); 1531 COUNTER_INC(mount_check_stat); 1532 1533 return (0); 1534} 1535 1536COUNTER_DECL(pipe_check_ioctl); 1537static int | 1526 struct label *mplabel) 1527{ 1528 1529 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1530 LABEL_CHECK(mplabel, MAGIC_MOUNT); 1531 COUNTER_INC(mount_check_stat); 1532 1533 return (0); 1534} 1535 1536COUNTER_DECL(pipe_check_ioctl); 1537static int |
1538mac_test_pipe_check_ioctl(struct ucred *cred, struct pipepair *pp, | 1538test_pipe_check_ioctl(struct ucred *cred, struct pipepair *pp, |
1539 struct label *pipelabel, unsigned long cmd, void /* caddr_t */ *data) 1540{ 1541 1542 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1543 LABEL_CHECK(pipelabel, MAGIC_PIPE); 1544 COUNTER_INC(pipe_check_ioctl); 1545 1546 return (0); 1547} 1548 1549COUNTER_DECL(pipe_check_poll); 1550static int | 1539 struct label *pipelabel, unsigned long cmd, void /* caddr_t */ *data) 1540{ 1541 1542 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1543 LABEL_CHECK(pipelabel, MAGIC_PIPE); 1544 COUNTER_INC(pipe_check_ioctl); 1545 1546 return (0); 1547} 1548 1549COUNTER_DECL(pipe_check_poll); 1550static int |
1551mac_test_pipe_check_poll(struct ucred *cred, struct pipepair *pp, | 1551test_pipe_check_poll(struct ucred *cred, struct pipepair *pp, |
1552 struct label *pipelabel) 1553{ 1554 1555 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1556 LABEL_CHECK(pipelabel, MAGIC_PIPE); 1557 COUNTER_INC(pipe_check_poll); 1558 1559 return (0); 1560} 1561 1562COUNTER_DECL(pipe_check_read); 1563static int | 1552 struct label *pipelabel) 1553{ 1554 1555 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1556 LABEL_CHECK(pipelabel, MAGIC_PIPE); 1557 COUNTER_INC(pipe_check_poll); 1558 1559 return (0); 1560} 1561 1562COUNTER_DECL(pipe_check_read); 1563static int |
1564mac_test_pipe_check_read(struct ucred *cred, struct pipepair *pp, | 1564test_pipe_check_read(struct ucred *cred, struct pipepair *pp, |
1565 struct label *pipelabel) 1566{ 1567 1568 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1569 LABEL_CHECK(pipelabel, MAGIC_PIPE); 1570 COUNTER_INC(pipe_check_read); 1571 1572 return (0); 1573} 1574 1575COUNTER_DECL(pipe_check_relabel); 1576static int | 1565 struct label *pipelabel) 1566{ 1567 1568 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1569 LABEL_CHECK(pipelabel, MAGIC_PIPE); 1570 COUNTER_INC(pipe_check_read); 1571 1572 return (0); 1573} 1574 1575COUNTER_DECL(pipe_check_relabel); 1576static int |
1577mac_test_pipe_check_relabel(struct ucred *cred, struct pipepair *pp, | 1577test_pipe_check_relabel(struct ucred *cred, struct pipepair *pp, |
1578 struct label *pipelabel, struct label *newlabel) 1579{ 1580 1581 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1582 LABEL_CHECK(pipelabel, MAGIC_PIPE); 1583 LABEL_CHECK(newlabel, MAGIC_PIPE); 1584 COUNTER_INC(pipe_check_relabel); 1585 1586 return (0); 1587} 1588 1589COUNTER_DECL(pipe_check_stat); 1590static int | 1578 struct label *pipelabel, struct label *newlabel) 1579{ 1580 1581 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1582 LABEL_CHECK(pipelabel, MAGIC_PIPE); 1583 LABEL_CHECK(newlabel, MAGIC_PIPE); 1584 COUNTER_INC(pipe_check_relabel); 1585 1586 return (0); 1587} 1588 1589COUNTER_DECL(pipe_check_stat); 1590static int |
1591mac_test_pipe_check_stat(struct ucred *cred, struct pipepair *pp, | 1591test_pipe_check_stat(struct ucred *cred, struct pipepair *pp, |
1592 struct label *pipelabel) 1593{ 1594 1595 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1596 LABEL_CHECK(pipelabel, MAGIC_PIPE); 1597 COUNTER_INC(pipe_check_stat); 1598 1599 return (0); 1600} 1601 1602COUNTER_DECL(pipe_check_write); 1603static int | 1592 struct label *pipelabel) 1593{ 1594 1595 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1596 LABEL_CHECK(pipelabel, MAGIC_PIPE); 1597 COUNTER_INC(pipe_check_stat); 1598 1599 return (0); 1600} 1601 1602COUNTER_DECL(pipe_check_write); 1603static int |
1604mac_test_pipe_check_write(struct ucred *cred, struct pipepair *pp, | 1604test_pipe_check_write(struct ucred *cred, struct pipepair *pp, |
1605 struct label *pipelabel) 1606{ 1607 1608 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1609 LABEL_CHECK(pipelabel, MAGIC_PIPE); 1610 COUNTER_INC(pipe_check_write); 1611 1612 return (0); 1613} 1614 1615COUNTER_DECL(posixsem_check); 1616static int | 1605 struct label *pipelabel) 1606{ 1607 1608 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1609 LABEL_CHECK(pipelabel, MAGIC_PIPE); 1610 COUNTER_INC(pipe_check_write); 1611 1612 return (0); 1613} 1614 1615COUNTER_DECL(posixsem_check); 1616static int |
1617mac_test_posixsem_check(struct ucred *cred, struct ksem *ks, | 1617test_posixsem_check(struct ucred *cred, struct ksem *ks, |
1618 struct label *kslabel) 1619{ 1620 1621 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1622 LABEL_CHECK(kslabel, MAGIC_POSIX_SEM); 1623 COUNTER_INC(posixsem_check); 1624 1625 return (0); 1626} 1627 1628COUNTER_DECL(proc_check_debug); 1629static int | 1618 struct label *kslabel) 1619{ 1620 1621 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1622 LABEL_CHECK(kslabel, MAGIC_POSIX_SEM); 1623 COUNTER_INC(posixsem_check); 1624 1625 return (0); 1626} 1627 1628COUNTER_DECL(proc_check_debug); 1629static int |
1630mac_test_proc_check_debug(struct ucred *cred, struct proc *p) | 1630test_proc_check_debug(struct ucred *cred, struct proc *p) |
1631{ 1632 1633 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1634 LABEL_CHECK(p->p_ucred->cr_label, MAGIC_CRED); 1635 COUNTER_INC(proc_check_debug); 1636 1637 return (0); 1638} 1639 1640COUNTER_DECL(proc_check_sched); 1641static int | 1631{ 1632 1633 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1634 LABEL_CHECK(p->p_ucred->cr_label, MAGIC_CRED); 1635 COUNTER_INC(proc_check_debug); 1636 1637 return (0); 1638} 1639 1640COUNTER_DECL(proc_check_sched); 1641static int |
1642mac_test_proc_check_sched(struct ucred *cred, struct proc *p) | 1642test_proc_check_sched(struct ucred *cred, struct proc *p) |
1643{ 1644 1645 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1646 LABEL_CHECK(p->p_ucred->cr_label, MAGIC_CRED); 1647 COUNTER_INC(proc_check_sched); 1648 1649 return (0); 1650} 1651 1652COUNTER_DECL(proc_check_signal); 1653static int | 1643{ 1644 1645 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1646 LABEL_CHECK(p->p_ucred->cr_label, MAGIC_CRED); 1647 COUNTER_INC(proc_check_sched); 1648 1649 return (0); 1650} 1651 1652COUNTER_DECL(proc_check_signal); 1653static int |
1654mac_test_proc_check_signal(struct ucred *cred, struct proc *p, int signum) | 1654test_proc_check_signal(struct ucred *cred, struct proc *p, int signum) |
1655{ 1656 1657 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1658 LABEL_CHECK(p->p_ucred->cr_label, MAGIC_CRED); 1659 COUNTER_INC(proc_check_signal); 1660 1661 return (0); 1662} 1663 1664COUNTER_DECL(proc_check_setaudit); 1665static int | 1655{ 1656 1657 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1658 LABEL_CHECK(p->p_ucred->cr_label, MAGIC_CRED); 1659 COUNTER_INC(proc_check_signal); 1660 1661 return (0); 1662} 1663 1664COUNTER_DECL(proc_check_setaudit); 1665static int |
1666mac_test_proc_check_setaudit(struct ucred *cred, struct auditinfo *ai) | 1666test_proc_check_setaudit(struct ucred *cred, struct auditinfo *ai) |
1667{ 1668 1669 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1670 COUNTER_INC(proc_check_setaudit); 1671 1672 return (0); 1673} 1674 1675COUNTER_DECL(proc_check_setaudit_addr); 1676static int | 1667{ 1668 1669 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1670 COUNTER_INC(proc_check_setaudit); 1671 1672 return (0); 1673} 1674 1675COUNTER_DECL(proc_check_setaudit_addr); 1676static int |
1677mac_test_proc_check_setaudit_addr(struct ucred *cred, | 1677test_proc_check_setaudit_addr(struct ucred *cred, |
1678 struct auditinfo_addr *aia) 1679{ 1680 1681 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1682 COUNTER_INC(proc_check_setaudit_addr); 1683 1684 return (0); 1685} 1686 1687COUNTER_DECL(proc_check_setauid); 1688static int | 1678 struct auditinfo_addr *aia) 1679{ 1680 1681 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1682 COUNTER_INC(proc_check_setaudit_addr); 1683 1684 return (0); 1685} 1686 1687COUNTER_DECL(proc_check_setauid); 1688static int |
1689mac_test_proc_check_setauid(struct ucred *cred, uid_t auid) | 1689test_proc_check_setauid(struct ucred *cred, uid_t auid) |
1690{ 1691 1692 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1693 COUNTER_INC(proc_check_setauid); 1694 1695 return (0); 1696} 1697 1698COUNTER_DECL(proc_check_setuid); 1699static int | 1690{ 1691 1692 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1693 COUNTER_INC(proc_check_setauid); 1694 1695 return (0); 1696} 1697 1698COUNTER_DECL(proc_check_setuid); 1699static int |
1700mac_test_proc_check_setuid(struct ucred *cred, uid_t uid) | 1700test_proc_check_setuid(struct ucred *cred, uid_t uid) |
1701{ 1702 1703 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1704 COUNTER_INC(proc_check_setuid); 1705 1706 return (0); 1707} 1708 1709COUNTER_DECL(proc_check_euid); 1710static int | 1701{ 1702 1703 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1704 COUNTER_INC(proc_check_setuid); 1705 1706 return (0); 1707} 1708 1709COUNTER_DECL(proc_check_euid); 1710static int |
1711mac_test_proc_check_seteuid(struct ucred *cred, uid_t euid) | 1711test_proc_check_seteuid(struct ucred *cred, uid_t euid) |
1712{ 1713 1714 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1715 COUNTER_INC(proc_check_euid); 1716 1717 return (0); 1718} 1719 1720COUNTER_DECL(proc_check_setgid); 1721static int | 1712{ 1713 1714 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1715 COUNTER_INC(proc_check_euid); 1716 1717 return (0); 1718} 1719 1720COUNTER_DECL(proc_check_setgid); 1721static int |
1722mac_test_proc_check_setgid(struct ucred *cred, gid_t gid) | 1722test_proc_check_setgid(struct ucred *cred, gid_t gid) |
1723{ 1724 1725 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1726 COUNTER_INC(proc_check_setgid); 1727 1728 return (0); 1729} 1730 1731COUNTER_DECL(proc_check_setegid); 1732static int | 1723{ 1724 1725 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1726 COUNTER_INC(proc_check_setgid); 1727 1728 return (0); 1729} 1730 1731COUNTER_DECL(proc_check_setegid); 1732static int |
1733mac_test_proc_check_setegid(struct ucred *cred, gid_t egid) | 1733test_proc_check_setegid(struct ucred *cred, gid_t egid) |
1734{ 1735 1736 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1737 COUNTER_INC(proc_check_setegid); 1738 1739 return (0); 1740} 1741 1742COUNTER_DECL(proc_check_setgroups); 1743static int | 1734{ 1735 1736 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1737 COUNTER_INC(proc_check_setegid); 1738 1739 return (0); 1740} 1741 1742COUNTER_DECL(proc_check_setgroups); 1743static int |
1744mac_test_proc_check_setgroups(struct ucred *cred, int ngroups, | 1744test_proc_check_setgroups(struct ucred *cred, int ngroups, |
1745 gid_t *gidset) 1746{ 1747 1748 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1749 COUNTER_INC(proc_check_setgroups); 1750 1751 return (0); 1752} 1753 1754COUNTER_DECL(proc_check_setreuid); 1755static int | 1745 gid_t *gidset) 1746{ 1747 1748 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1749 COUNTER_INC(proc_check_setgroups); 1750 1751 return (0); 1752} 1753 1754COUNTER_DECL(proc_check_setreuid); 1755static int |
1756mac_test_proc_check_setreuid(struct ucred *cred, uid_t ruid, uid_t euid) | 1756test_proc_check_setreuid(struct ucred *cred, uid_t ruid, uid_t euid) |
1757{ 1758 1759 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1760 COUNTER_INC(proc_check_setreuid); 1761 1762 return (0); 1763} 1764 1765COUNTER_DECL(proc_check_setregid); 1766static int | 1757{ 1758 1759 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1760 COUNTER_INC(proc_check_setreuid); 1761 1762 return (0); 1763} 1764 1765COUNTER_DECL(proc_check_setregid); 1766static int |
1767mac_test_proc_check_setregid(struct ucred *cred, gid_t rgid, gid_t egid) | 1767test_proc_check_setregid(struct ucred *cred, gid_t rgid, gid_t egid) |
1768{ 1769 1770 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1771 COUNTER_INC(proc_check_setregid); 1772 1773 return (0); 1774} 1775 1776COUNTER_DECL(proc_check_setresuid); 1777static int | 1768{ 1769 1770 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1771 COUNTER_INC(proc_check_setregid); 1772 1773 return (0); 1774} 1775 1776COUNTER_DECL(proc_check_setresuid); 1777static int |
1778mac_test_proc_check_setresuid(struct ucred *cred, uid_t ruid, uid_t euid, | 1778test_proc_check_setresuid(struct ucred *cred, uid_t ruid, uid_t euid, |
1779 uid_t suid) 1780{ 1781 1782 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1783 COUNTER_INC(proc_check_setresuid); 1784 1785 return (0); 1786} 1787 1788COUNTER_DECL(proc_check_setresgid); 1789static int | 1779 uid_t suid) 1780{ 1781 1782 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1783 COUNTER_INC(proc_check_setresuid); 1784 1785 return (0); 1786} 1787 1788COUNTER_DECL(proc_check_setresgid); 1789static int |
1790mac_test_proc_check_setresgid(struct ucred *cred, gid_t rgid, gid_t egid, | 1790test_proc_check_setresgid(struct ucred *cred, gid_t rgid, gid_t egid, |
1791 gid_t sgid) 1792{ 1793 1794 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1795 COUNTER_INC(proc_check_setresgid); 1796 1797 return (0); 1798} 1799 1800COUNTER_DECL(proc_check_wait); 1801static int | 1791 gid_t sgid) 1792{ 1793 1794 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1795 COUNTER_INC(proc_check_setresgid); 1796 1797 return (0); 1798} 1799 1800COUNTER_DECL(proc_check_wait); 1801static int |
1802mac_test_proc_check_wait(struct ucred *cred, struct proc *p) | 1802test_proc_check_wait(struct ucred *cred, struct proc *p) |
1803{ 1804 1805 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1806 LABEL_CHECK(p->p_ucred->cr_label, MAGIC_CRED); 1807 COUNTER_INC(proc_check_wait); 1808 1809 return (0); 1810} 1811 1812COUNTER_DECL(socket_check_accept); 1813static int | 1803{ 1804 1805 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1806 LABEL_CHECK(p->p_ucred->cr_label, MAGIC_CRED); 1807 COUNTER_INC(proc_check_wait); 1808 1809 return (0); 1810} 1811 1812COUNTER_DECL(socket_check_accept); 1813static int |
1814mac_test_socket_check_accept(struct ucred *cred, struct socket *so, | 1814test_socket_check_accept(struct ucred *cred, struct socket *so, |
1815 struct label *solabel) 1816{ 1817 1818 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1819 LABEL_CHECK(solabel, MAGIC_SOCKET); 1820 COUNTER_INC(socket_check_accept); 1821 1822 return (0); 1823} 1824 1825COUNTER_DECL(socket_check_bind); 1826static int | 1815 struct label *solabel) 1816{ 1817 1818 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1819 LABEL_CHECK(solabel, MAGIC_SOCKET); 1820 COUNTER_INC(socket_check_accept); 1821 1822 return (0); 1823} 1824 1825COUNTER_DECL(socket_check_bind); 1826static int |
1827mac_test_socket_check_bind(struct ucred *cred, struct socket *so, | 1827test_socket_check_bind(struct ucred *cred, struct socket *so, |
1828 struct label *solabel, struct sockaddr *sa) 1829{ 1830 1831 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1832 LABEL_CHECK(solabel, MAGIC_SOCKET); 1833 COUNTER_INC(socket_check_bind); 1834 1835 return (0); 1836} 1837 1838COUNTER_DECL(socket_check_connect); 1839static int | 1828 struct label *solabel, struct sockaddr *sa) 1829{ 1830 1831 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1832 LABEL_CHECK(solabel, MAGIC_SOCKET); 1833 COUNTER_INC(socket_check_bind); 1834 1835 return (0); 1836} 1837 1838COUNTER_DECL(socket_check_connect); 1839static int |
1840mac_test_socket_check_connect(struct ucred *cred, struct socket *so, | 1840test_socket_check_connect(struct ucred *cred, struct socket *so, |
1841 struct label *solabel, struct sockaddr *sa) 1842{ 1843 1844 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1845 LABEL_CHECK(solabel, MAGIC_SOCKET); 1846 COUNTER_INC(socket_check_connect); 1847 1848 return (0); 1849} 1850 1851COUNTER_DECL(socket_check_deliver); 1852static int | 1841 struct label *solabel, struct sockaddr *sa) 1842{ 1843 1844 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1845 LABEL_CHECK(solabel, MAGIC_SOCKET); 1846 COUNTER_INC(socket_check_connect); 1847 1848 return (0); 1849} 1850 1851COUNTER_DECL(socket_check_deliver); 1852static int |
1853mac_test_socket_check_deliver(struct socket *so, struct label *solabel, | 1853test_socket_check_deliver(struct socket *so, struct label *solabel, |
1854 struct mbuf *m, struct label *mlabel) 1855{ 1856 1857 LABEL_CHECK(solabel, MAGIC_SOCKET); 1858 LABEL_CHECK(mlabel, MAGIC_MBUF); 1859 COUNTER_INC(socket_check_deliver); 1860 1861 return (0); 1862} 1863 1864COUNTER_DECL(socket_check_listen); 1865static int | 1854 struct mbuf *m, struct label *mlabel) 1855{ 1856 1857 LABEL_CHECK(solabel, MAGIC_SOCKET); 1858 LABEL_CHECK(mlabel, MAGIC_MBUF); 1859 COUNTER_INC(socket_check_deliver); 1860 1861 return (0); 1862} 1863 1864COUNTER_DECL(socket_check_listen); 1865static int |
1866mac_test_socket_check_listen(struct ucred *cred, struct socket *so, | 1866test_socket_check_listen(struct ucred *cred, struct socket *so, |
1867 struct label *solabel) 1868{ 1869 1870 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1871 LABEL_CHECK(solabel, MAGIC_SOCKET); 1872 COUNTER_INC(socket_check_listen); 1873 1874 return (0); 1875} 1876 1877COUNTER_DECL(socket_check_poll); 1878static int | 1867 struct label *solabel) 1868{ 1869 1870 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1871 LABEL_CHECK(solabel, MAGIC_SOCKET); 1872 COUNTER_INC(socket_check_listen); 1873 1874 return (0); 1875} 1876 1877COUNTER_DECL(socket_check_poll); 1878static int |
1879mac_test_socket_check_poll(struct ucred *cred, struct socket *so, | 1879test_socket_check_poll(struct ucred *cred, struct socket *so, |
1880 struct label *solabel) 1881{ 1882 1883 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1884 LABEL_CHECK(solabel, MAGIC_SOCKET); 1885 COUNTER_INC(socket_check_poll); 1886 1887 return (0); 1888} 1889 1890COUNTER_DECL(socket_check_receive); 1891static int | 1880 struct label *solabel) 1881{ 1882 1883 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1884 LABEL_CHECK(solabel, MAGIC_SOCKET); 1885 COUNTER_INC(socket_check_poll); 1886 1887 return (0); 1888} 1889 1890COUNTER_DECL(socket_check_receive); 1891static int |
1892mac_test_socket_check_receive(struct ucred *cred, struct socket *so, | 1892test_socket_check_receive(struct ucred *cred, struct socket *so, |
1893 struct label *solabel) 1894{ 1895 1896 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1897 LABEL_CHECK(solabel, MAGIC_SOCKET); 1898 COUNTER_INC(socket_check_receive); 1899 1900 return (0); 1901} 1902 1903COUNTER_DECL(socket_check_relabel); 1904static int | 1893 struct label *solabel) 1894{ 1895 1896 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1897 LABEL_CHECK(solabel, MAGIC_SOCKET); 1898 COUNTER_INC(socket_check_receive); 1899 1900 return (0); 1901} 1902 1903COUNTER_DECL(socket_check_relabel); 1904static int |
1905mac_test_socket_check_relabel(struct ucred *cred, struct socket *so, | 1905test_socket_check_relabel(struct ucred *cred, struct socket *so, |
1906 struct label *solabel, struct label *newlabel) 1907{ 1908 1909 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1910 LABEL_CHECK(solabel, MAGIC_SOCKET); 1911 LABEL_CHECK(newlabel, MAGIC_SOCKET); 1912 COUNTER_INC(socket_check_relabel); 1913 1914 return (0); 1915} 1916 1917COUNTER_DECL(socket_check_send); 1918static int | 1906 struct label *solabel, struct label *newlabel) 1907{ 1908 1909 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1910 LABEL_CHECK(solabel, MAGIC_SOCKET); 1911 LABEL_CHECK(newlabel, MAGIC_SOCKET); 1912 COUNTER_INC(socket_check_relabel); 1913 1914 return (0); 1915} 1916 1917COUNTER_DECL(socket_check_send); 1918static int |
1919mac_test_socket_check_send(struct ucred *cred, struct socket *so, | 1919test_socket_check_send(struct ucred *cred, struct socket *so, |
1920 struct label *solabel) 1921{ 1922 1923 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1924 LABEL_CHECK(solabel, MAGIC_SOCKET); 1925 COUNTER_INC(socket_check_send); 1926 1927 return (0); 1928} 1929 1930COUNTER_DECL(socket_check_stat); 1931static int | 1920 struct label *solabel) 1921{ 1922 1923 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1924 LABEL_CHECK(solabel, MAGIC_SOCKET); 1925 COUNTER_INC(socket_check_send); 1926 1927 return (0); 1928} 1929 1930COUNTER_DECL(socket_check_stat); 1931static int |
1932mac_test_socket_check_stat(struct ucred *cred, struct socket *so, | 1932test_socket_check_stat(struct ucred *cred, struct socket *so, |
1933 struct label *solabel) 1934{ 1935 1936 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1937 LABEL_CHECK(solabel, MAGIC_SOCKET); 1938 COUNTER_INC(socket_check_stat); 1939 1940 return (0); 1941} 1942 1943COUNTER_DECL(socket_check_visible); 1944static int | 1933 struct label *solabel) 1934{ 1935 1936 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1937 LABEL_CHECK(solabel, MAGIC_SOCKET); 1938 COUNTER_INC(socket_check_stat); 1939 1940 return (0); 1941} 1942 1943COUNTER_DECL(socket_check_visible); 1944static int |
1945mac_test_socket_check_visible(struct ucred *cred, struct socket *so, | 1945test_socket_check_visible(struct ucred *cred, struct socket *so, |
1946 struct label *solabel) 1947{ 1948 1949 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1950 LABEL_CHECK(solabel, MAGIC_SOCKET); 1951 COUNTER_INC(socket_check_visible); 1952 1953 return (0); 1954} 1955 1956COUNTER_DECL(system_check_acct); 1957static int | 1946 struct label *solabel) 1947{ 1948 1949 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1950 LABEL_CHECK(solabel, MAGIC_SOCKET); 1951 COUNTER_INC(socket_check_visible); 1952 1953 return (0); 1954} 1955 1956COUNTER_DECL(system_check_acct); 1957static int |
1958mac_test_system_check_acct(struct ucred *cred, struct vnode *vp, | 1958test_system_check_acct(struct ucred *cred, struct vnode *vp, |
1959 struct label *vplabel) 1960{ 1961 1962 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1963 LABEL_CHECK(vplabel, MAGIC_VNODE); 1964 COUNTER_INC(system_check_acct); 1965 1966 return (0); 1967} 1968 1969COUNTER_DECL(system_check_audit); 1970static int | 1959 struct label *vplabel) 1960{ 1961 1962 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1963 LABEL_CHECK(vplabel, MAGIC_VNODE); 1964 COUNTER_INC(system_check_acct); 1965 1966 return (0); 1967} 1968 1969COUNTER_DECL(system_check_audit); 1970static int |
1971mac_test_system_check_audit(struct ucred *cred, void *record, int length) | 1971test_system_check_audit(struct ucred *cred, void *record, int length) |
1972{ 1973 1974 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1975 COUNTER_INC(system_check_audit); 1976 1977 return (0); 1978} 1979 1980COUNTER_DECL(system_check_auditctl); 1981static int | 1972{ 1973 1974 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1975 COUNTER_INC(system_check_audit); 1976 1977 return (0); 1978} 1979 1980COUNTER_DECL(system_check_auditctl); 1981static int |
1982mac_test_system_check_auditctl(struct ucred *cred, struct vnode *vp, | 1982test_system_check_auditctl(struct ucred *cred, struct vnode *vp, |
1983 struct label *vplabel) 1984{ 1985 1986 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1987 LABEL_CHECK(vplabel, MAGIC_VNODE); 1988 COUNTER_INC(system_check_auditctl); 1989 1990 return (0); 1991} 1992 1993COUNTER_DECL(system_check_auditon); 1994static int | 1983 struct label *vplabel) 1984{ 1985 1986 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1987 LABEL_CHECK(vplabel, MAGIC_VNODE); 1988 COUNTER_INC(system_check_auditctl); 1989 1990 return (0); 1991} 1992 1993COUNTER_DECL(system_check_auditon); 1994static int |
1995mac_test_system_check_auditon(struct ucred *cred, int cmd) | 1995test_system_check_auditon(struct ucred *cred, int cmd) |
1996{ 1997 1998 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1999 COUNTER_INC(system_check_auditon); 2000 2001 return (0); 2002} 2003 2004COUNTER_DECL(system_check_reboot); 2005static int | 1996{ 1997 1998 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 1999 COUNTER_INC(system_check_auditon); 2000 2001 return (0); 2002} 2003 2004COUNTER_DECL(system_check_reboot); 2005static int |
2006mac_test_system_check_reboot(struct ucred *cred, int how) | 2006test_system_check_reboot(struct ucred *cred, int how) |
2007{ 2008 2009 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2010 COUNTER_INC(system_check_reboot); 2011 2012 return (0); 2013} 2014 2015COUNTER_DECL(system_check_swapoff); 2016static int | 2007{ 2008 2009 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2010 COUNTER_INC(system_check_reboot); 2011 2012 return (0); 2013} 2014 2015COUNTER_DECL(system_check_swapoff); 2016static int |
2017mac_test_system_check_swapoff(struct ucred *cred, struct vnode *vp, | 2017test_system_check_swapoff(struct ucred *cred, struct vnode *vp, |
2018 struct label *vplabel) 2019{ 2020 2021 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2022 LABEL_CHECK(vplabel, MAGIC_VNODE); 2023 COUNTER_INC(system_check_swapoff); 2024 2025 return (0); 2026} 2027 2028COUNTER_DECL(system_check_swapon); 2029static int | 2018 struct label *vplabel) 2019{ 2020 2021 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2022 LABEL_CHECK(vplabel, MAGIC_VNODE); 2023 COUNTER_INC(system_check_swapoff); 2024 2025 return (0); 2026} 2027 2028COUNTER_DECL(system_check_swapon); 2029static int |
2030mac_test_system_check_swapon(struct ucred *cred, struct vnode *vp, | 2030test_system_check_swapon(struct ucred *cred, struct vnode *vp, |
2031 struct label *vplabel) 2032{ 2033 2034 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2035 LABEL_CHECK(vplabel, MAGIC_VNODE); 2036 COUNTER_INC(system_check_swapon); 2037 2038 return (0); 2039} 2040 2041COUNTER_DECL(system_check_sysctl); 2042static int | 2031 struct label *vplabel) 2032{ 2033 2034 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2035 LABEL_CHECK(vplabel, MAGIC_VNODE); 2036 COUNTER_INC(system_check_swapon); 2037 2038 return (0); 2039} 2040 2041COUNTER_DECL(system_check_sysctl); 2042static int |
2043mac_test_system_check_sysctl(struct ucred *cred, struct sysctl_oid *oidp, | 2043test_system_check_sysctl(struct ucred *cred, struct sysctl_oid *oidp, |
2044 void *arg1, int arg2, struct sysctl_req *req) 2045{ 2046 2047 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2048 COUNTER_INC(system_check_sysctl); 2049 2050 return (0); 2051} 2052 2053COUNTER_DECL(vnode_check_access); 2054static int | 2044 void *arg1, int arg2, struct sysctl_req *req) 2045{ 2046 2047 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2048 COUNTER_INC(system_check_sysctl); 2049 2050 return (0); 2051} 2052 2053COUNTER_DECL(vnode_check_access); 2054static int |
2055mac_test_vnode_check_access(struct ucred *cred, struct vnode *vp, | 2055test_vnode_check_access(struct ucred *cred, struct vnode *vp, |
2056 struct label *vplabel, int acc_mode) 2057{ 2058 2059 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2060 LABEL_CHECK(vplabel, MAGIC_VNODE); 2061 COUNTER_INC(vnode_check_access); 2062 2063 return (0); 2064} 2065 2066COUNTER_DECL(vnode_check_chdir); 2067static int | 2056 struct label *vplabel, int acc_mode) 2057{ 2058 2059 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2060 LABEL_CHECK(vplabel, MAGIC_VNODE); 2061 COUNTER_INC(vnode_check_access); 2062 2063 return (0); 2064} 2065 2066COUNTER_DECL(vnode_check_chdir); 2067static int |
2068mac_test_vnode_check_chdir(struct ucred *cred, struct vnode *dvp, | 2068test_vnode_check_chdir(struct ucred *cred, struct vnode *dvp, |
2069 struct label *dvplabel) 2070{ 2071 2072 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2073 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2074 COUNTER_INC(vnode_check_chdir); 2075 2076 return (0); 2077} 2078 2079COUNTER_DECL(vnode_check_chroot); 2080static int | 2069 struct label *dvplabel) 2070{ 2071 2072 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2073 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2074 COUNTER_INC(vnode_check_chdir); 2075 2076 return (0); 2077} 2078 2079COUNTER_DECL(vnode_check_chroot); 2080static int |
2081mac_test_vnode_check_chroot(struct ucred *cred, struct vnode *dvp, | 2081test_vnode_check_chroot(struct ucred *cred, struct vnode *dvp, |
2082 struct label *dvplabel) 2083{ 2084 2085 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2086 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2087 COUNTER_INC(vnode_check_chroot); 2088 2089 return (0); 2090} 2091 2092COUNTER_DECL(vnode_check_create); 2093static int | 2082 struct label *dvplabel) 2083{ 2084 2085 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2086 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2087 COUNTER_INC(vnode_check_chroot); 2088 2089 return (0); 2090} 2091 2092COUNTER_DECL(vnode_check_create); 2093static int |
2094mac_test_vnode_check_create(struct ucred *cred, struct vnode *dvp, | 2094test_vnode_check_create(struct ucred *cred, struct vnode *dvp, |
2095 struct label *dvplabel, struct componentname *cnp, struct vattr *vap) 2096{ 2097 2098 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2099 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2100 COUNTER_INC(vnode_check_create); 2101 2102 return (0); 2103} 2104 2105COUNTER_DECL(vnode_check_deleteacl); 2106static int | 2095 struct label *dvplabel, struct componentname *cnp, struct vattr *vap) 2096{ 2097 2098 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2099 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2100 COUNTER_INC(vnode_check_create); 2101 2102 return (0); 2103} 2104 2105COUNTER_DECL(vnode_check_deleteacl); 2106static int |
2107mac_test_vnode_check_deleteacl(struct ucred *cred, struct vnode *vp, | 2107test_vnode_check_deleteacl(struct ucred *cred, struct vnode *vp, |
2108 struct label *vplabel, acl_type_t type) 2109{ 2110 2111 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2112 LABEL_CHECK(vplabel, MAGIC_VNODE); 2113 COUNTER_INC(vnode_check_deleteacl); 2114 2115 return (0); 2116} 2117 2118COUNTER_DECL(vnode_check_deleteextattr); 2119static int | 2108 struct label *vplabel, acl_type_t type) 2109{ 2110 2111 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2112 LABEL_CHECK(vplabel, MAGIC_VNODE); 2113 COUNTER_INC(vnode_check_deleteacl); 2114 2115 return (0); 2116} 2117 2118COUNTER_DECL(vnode_check_deleteextattr); 2119static int |
2120mac_test_vnode_check_deleteextattr(struct ucred *cred, struct vnode *vp, | 2120test_vnode_check_deleteextattr(struct ucred *cred, struct vnode *vp, |
2121 struct label *vplabel, int attrnamespace, const char *name) 2122{ 2123 2124 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2125 LABEL_CHECK(vplabel, MAGIC_VNODE); 2126 COUNTER_INC(vnode_check_deleteextattr); 2127 2128 return (0); 2129} 2130 2131COUNTER_DECL(vnode_check_exec); 2132static int | 2121 struct label *vplabel, int attrnamespace, const char *name) 2122{ 2123 2124 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2125 LABEL_CHECK(vplabel, MAGIC_VNODE); 2126 COUNTER_INC(vnode_check_deleteextattr); 2127 2128 return (0); 2129} 2130 2131COUNTER_DECL(vnode_check_exec); 2132static int |
2133mac_test_vnode_check_exec(struct ucred *cred, struct vnode *vp, | 2133test_vnode_check_exec(struct ucred *cred, struct vnode *vp, |
2134 struct label *vplabel, struct image_params *imgp, 2135 struct label *execlabel) 2136{ 2137 2138 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2139 LABEL_CHECK(vplabel, MAGIC_VNODE); 2140 LABEL_CHECK(execlabel, MAGIC_CRED); 2141 COUNTER_INC(vnode_check_exec); 2142 2143 return (0); 2144} 2145 2146COUNTER_DECL(vnode_check_getacl); 2147static int | 2134 struct label *vplabel, struct image_params *imgp, 2135 struct label *execlabel) 2136{ 2137 2138 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2139 LABEL_CHECK(vplabel, MAGIC_VNODE); 2140 LABEL_CHECK(execlabel, MAGIC_CRED); 2141 COUNTER_INC(vnode_check_exec); 2142 2143 return (0); 2144} 2145 2146COUNTER_DECL(vnode_check_getacl); 2147static int |
2148mac_test_vnode_check_getacl(struct ucred *cred, struct vnode *vp, | 2148test_vnode_check_getacl(struct ucred *cred, struct vnode *vp, |
2149 struct label *vplabel, acl_type_t type) 2150{ 2151 2152 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2153 LABEL_CHECK(vplabel, MAGIC_VNODE); 2154 COUNTER_INC(vnode_check_getacl); 2155 2156 return (0); 2157} 2158 2159COUNTER_DECL(vnode_check_getextattr); 2160static int | 2149 struct label *vplabel, acl_type_t type) 2150{ 2151 2152 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2153 LABEL_CHECK(vplabel, MAGIC_VNODE); 2154 COUNTER_INC(vnode_check_getacl); 2155 2156 return (0); 2157} 2158 2159COUNTER_DECL(vnode_check_getextattr); 2160static int |
2161mac_test_vnode_check_getextattr(struct ucred *cred, struct vnode *vp, | 2161test_vnode_check_getextattr(struct ucred *cred, struct vnode *vp, |
2162 struct label *vplabel, int attrnamespace, const char *name, 2163 struct uio *uio) 2164{ 2165 2166 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2167 LABEL_CHECK(vplabel, MAGIC_VNODE); 2168 COUNTER_INC(vnode_check_getextattr); 2169 2170 return (0); 2171} 2172 2173COUNTER_DECL(vnode_check_link); 2174static int | 2162 struct label *vplabel, int attrnamespace, const char *name, 2163 struct uio *uio) 2164{ 2165 2166 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2167 LABEL_CHECK(vplabel, MAGIC_VNODE); 2168 COUNTER_INC(vnode_check_getextattr); 2169 2170 return (0); 2171} 2172 2173COUNTER_DECL(vnode_check_link); 2174static int |
2175mac_test_vnode_check_link(struct ucred *cred, struct vnode *dvp, | 2175test_vnode_check_link(struct ucred *cred, struct vnode *dvp, |
2176 struct label *dvplabel, struct vnode *vp, struct label *vplabel, 2177 struct componentname *cnp) 2178{ 2179 2180 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2181 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2182 LABEL_CHECK(vplabel, MAGIC_VNODE); 2183 COUNTER_INC(vnode_check_link); 2184 2185 return (0); 2186} 2187 2188COUNTER_DECL(vnode_check_listextattr); 2189static int | 2176 struct label *dvplabel, struct vnode *vp, struct label *vplabel, 2177 struct componentname *cnp) 2178{ 2179 2180 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2181 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2182 LABEL_CHECK(vplabel, MAGIC_VNODE); 2183 COUNTER_INC(vnode_check_link); 2184 2185 return (0); 2186} 2187 2188COUNTER_DECL(vnode_check_listextattr); 2189static int |
2190mac_test_vnode_check_listextattr(struct ucred *cred, struct vnode *vp, | 2190test_vnode_check_listextattr(struct ucred *cred, struct vnode *vp, |
2191 struct label *vplabel, int attrnamespace) 2192{ 2193 2194 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2195 LABEL_CHECK(vplabel, MAGIC_VNODE); 2196 COUNTER_INC(vnode_check_listextattr); 2197 2198 return (0); 2199} 2200 2201COUNTER_DECL(vnode_check_lookup); 2202static int | 2191 struct label *vplabel, int attrnamespace) 2192{ 2193 2194 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2195 LABEL_CHECK(vplabel, MAGIC_VNODE); 2196 COUNTER_INC(vnode_check_listextattr); 2197 2198 return (0); 2199} 2200 2201COUNTER_DECL(vnode_check_lookup); 2202static int |
2203mac_test_vnode_check_lookup(struct ucred *cred, struct vnode *dvp, | 2203test_vnode_check_lookup(struct ucred *cred, struct vnode *dvp, |
2204 struct label *dvplabel, struct componentname *cnp) 2205{ 2206 2207 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2208 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2209 COUNTER_INC(vnode_check_lookup); 2210 2211 return (0); 2212} 2213 2214COUNTER_DECL(vnode_check_mmap); 2215static int | 2204 struct label *dvplabel, struct componentname *cnp) 2205{ 2206 2207 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2208 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2209 COUNTER_INC(vnode_check_lookup); 2210 2211 return (0); 2212} 2213 2214COUNTER_DECL(vnode_check_mmap); 2215static int |
2216mac_test_vnode_check_mmap(struct ucred *cred, struct vnode *vp, | 2216test_vnode_check_mmap(struct ucred *cred, struct vnode *vp, |
2217 struct label *vplabel, int prot, int flags) 2218{ 2219 2220 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2221 LABEL_CHECK(vplabel, MAGIC_VNODE); 2222 COUNTER_INC(vnode_check_mmap); 2223 2224 return (0); 2225} 2226 2227COUNTER_DECL(vnode_check_open); 2228static int | 2217 struct label *vplabel, int prot, int flags) 2218{ 2219 2220 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2221 LABEL_CHECK(vplabel, MAGIC_VNODE); 2222 COUNTER_INC(vnode_check_mmap); 2223 2224 return (0); 2225} 2226 2227COUNTER_DECL(vnode_check_open); 2228static int |
2229mac_test_vnode_check_open(struct ucred *cred, struct vnode *vp, | 2229test_vnode_check_open(struct ucred *cred, struct vnode *vp, |
2230 struct label *vplabel, int acc_mode) 2231{ 2232 2233 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2234 LABEL_CHECK(vplabel, MAGIC_VNODE); 2235 COUNTER_INC(vnode_check_open); 2236 2237 return (0); 2238} 2239 2240COUNTER_DECL(vnode_check_poll); 2241static int | 2230 struct label *vplabel, int acc_mode) 2231{ 2232 2233 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2234 LABEL_CHECK(vplabel, MAGIC_VNODE); 2235 COUNTER_INC(vnode_check_open); 2236 2237 return (0); 2238} 2239 2240COUNTER_DECL(vnode_check_poll); 2241static int |
2242mac_test_vnode_check_poll(struct ucred *active_cred, struct ucred *file_cred, | 2242test_vnode_check_poll(struct ucred *active_cred, struct ucred *file_cred, |
2243 struct vnode *vp, struct label *vplabel) 2244{ 2245 2246 LABEL_CHECK(active_cred->cr_label, MAGIC_CRED); 2247 if (file_cred != NULL) 2248 LABEL_CHECK(file_cred->cr_label, MAGIC_CRED); 2249 LABEL_CHECK(vplabel, MAGIC_VNODE); 2250 COUNTER_INC(vnode_check_poll); 2251 2252 return (0); 2253} 2254 2255COUNTER_DECL(vnode_check_read); 2256static int | 2243 struct vnode *vp, struct label *vplabel) 2244{ 2245 2246 LABEL_CHECK(active_cred->cr_label, MAGIC_CRED); 2247 if (file_cred != NULL) 2248 LABEL_CHECK(file_cred->cr_label, MAGIC_CRED); 2249 LABEL_CHECK(vplabel, MAGIC_VNODE); 2250 COUNTER_INC(vnode_check_poll); 2251 2252 return (0); 2253} 2254 2255COUNTER_DECL(vnode_check_read); 2256static int |
2257mac_test_vnode_check_read(struct ucred *active_cred, struct ucred *file_cred, | 2257test_vnode_check_read(struct ucred *active_cred, struct ucred *file_cred, |
2258 struct vnode *vp, struct label *vplabel) 2259{ 2260 2261 LABEL_CHECK(active_cred->cr_label, MAGIC_CRED); 2262 if (file_cred != NULL) 2263 LABEL_CHECK(file_cred->cr_label, MAGIC_CRED); 2264 LABEL_CHECK(vplabel, MAGIC_VNODE); 2265 COUNTER_INC(vnode_check_read); 2266 2267 return (0); 2268} 2269 2270COUNTER_DECL(vnode_check_readdir); 2271static int | 2258 struct vnode *vp, struct label *vplabel) 2259{ 2260 2261 LABEL_CHECK(active_cred->cr_label, MAGIC_CRED); 2262 if (file_cred != NULL) 2263 LABEL_CHECK(file_cred->cr_label, MAGIC_CRED); 2264 LABEL_CHECK(vplabel, MAGIC_VNODE); 2265 COUNTER_INC(vnode_check_read); 2266 2267 return (0); 2268} 2269 2270COUNTER_DECL(vnode_check_readdir); 2271static int |
2272mac_test_vnode_check_readdir(struct ucred *cred, struct vnode *dvp, | 2272test_vnode_check_readdir(struct ucred *cred, struct vnode *dvp, |
2273 struct label *dvplabel) 2274{ 2275 2276 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2277 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2278 COUNTER_INC(vnode_check_readdir); 2279 2280 return (0); 2281} 2282 2283COUNTER_DECL(vnode_check_readlink); 2284static int | 2273 struct label *dvplabel) 2274{ 2275 2276 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2277 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2278 COUNTER_INC(vnode_check_readdir); 2279 2280 return (0); 2281} 2282 2283COUNTER_DECL(vnode_check_readlink); 2284static int |
2285mac_test_vnode_check_readlink(struct ucred *cred, struct vnode *vp, | 2285test_vnode_check_readlink(struct ucred *cred, struct vnode *vp, |
2286 struct label *vplabel) 2287{ 2288 2289 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2290 LABEL_CHECK(vplabel, MAGIC_VNODE); 2291 COUNTER_INC(vnode_check_readlink); 2292 2293 return (0); 2294} 2295 2296COUNTER_DECL(vnode_check_relabel); 2297static int | 2286 struct label *vplabel) 2287{ 2288 2289 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2290 LABEL_CHECK(vplabel, MAGIC_VNODE); 2291 COUNTER_INC(vnode_check_readlink); 2292 2293 return (0); 2294} 2295 2296COUNTER_DECL(vnode_check_relabel); 2297static int |
2298mac_test_vnode_check_relabel(struct ucred *cred, struct vnode *vp, | 2298test_vnode_check_relabel(struct ucred *cred, struct vnode *vp, |
2299 struct label *vplabel, struct label *newlabel) 2300{ 2301 2302 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2303 LABEL_CHECK(vplabel, MAGIC_VNODE); 2304 LABEL_CHECK(newlabel, MAGIC_VNODE); 2305 COUNTER_INC(vnode_check_relabel); 2306 2307 return (0); 2308} 2309 2310COUNTER_DECL(vnode_check_rename_from); 2311static int | 2299 struct label *vplabel, struct label *newlabel) 2300{ 2301 2302 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2303 LABEL_CHECK(vplabel, MAGIC_VNODE); 2304 LABEL_CHECK(newlabel, MAGIC_VNODE); 2305 COUNTER_INC(vnode_check_relabel); 2306 2307 return (0); 2308} 2309 2310COUNTER_DECL(vnode_check_rename_from); 2311static int |
2312mac_test_vnode_check_rename_from(struct ucred *cred, struct vnode *dvp, | 2312test_vnode_check_rename_from(struct ucred *cred, struct vnode *dvp, |
2313 struct label *dvplabel, struct vnode *vp, struct label *vplabel, 2314 struct componentname *cnp) 2315{ 2316 2317 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2318 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2319 LABEL_CHECK(vplabel, MAGIC_VNODE); 2320 COUNTER_INC(vnode_check_rename_from); 2321 2322 return (0); 2323} 2324 2325COUNTER_DECL(vnode_check_rename_to); 2326static int | 2313 struct label *dvplabel, struct vnode *vp, struct label *vplabel, 2314 struct componentname *cnp) 2315{ 2316 2317 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2318 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2319 LABEL_CHECK(vplabel, MAGIC_VNODE); 2320 COUNTER_INC(vnode_check_rename_from); 2321 2322 return (0); 2323} 2324 2325COUNTER_DECL(vnode_check_rename_to); 2326static int |
2327mac_test_vnode_check_rename_to(struct ucred *cred, struct vnode *dvp, | 2327test_vnode_check_rename_to(struct ucred *cred, struct vnode *dvp, |
2328 struct label *dvplabel, struct vnode *vp, struct label *vplabel, 2329 int samedir, struct componentname *cnp) 2330{ 2331 2332 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2333 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2334 LABEL_CHECK(vplabel, MAGIC_VNODE); 2335 COUNTER_INC(vnode_check_rename_to); 2336 2337 return (0); 2338} 2339 2340COUNTER_DECL(vnode_check_revoke); 2341static int | 2328 struct label *dvplabel, struct vnode *vp, struct label *vplabel, 2329 int samedir, struct componentname *cnp) 2330{ 2331 2332 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2333 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2334 LABEL_CHECK(vplabel, MAGIC_VNODE); 2335 COUNTER_INC(vnode_check_rename_to); 2336 2337 return (0); 2338} 2339 2340COUNTER_DECL(vnode_check_revoke); 2341static int |
2342mac_test_vnode_check_revoke(struct ucred *cred, struct vnode *vp, | 2342test_vnode_check_revoke(struct ucred *cred, struct vnode *vp, |
2343 struct label *vplabel) 2344{ 2345 2346 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2347 LABEL_CHECK(vplabel, MAGIC_VNODE); 2348 COUNTER_INC(vnode_check_revoke); 2349 2350 return (0); 2351} 2352 2353COUNTER_DECL(vnode_check_setacl); 2354static int | 2343 struct label *vplabel) 2344{ 2345 2346 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2347 LABEL_CHECK(vplabel, MAGIC_VNODE); 2348 COUNTER_INC(vnode_check_revoke); 2349 2350 return (0); 2351} 2352 2353COUNTER_DECL(vnode_check_setacl); 2354static int |
2355mac_test_vnode_check_setacl(struct ucred *cred, struct vnode *vp, | 2355test_vnode_check_setacl(struct ucred *cred, struct vnode *vp, |
2356 struct label *vplabel, acl_type_t type, struct acl *acl) 2357{ 2358 2359 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2360 LABEL_CHECK(vplabel, MAGIC_VNODE); 2361 COUNTER_INC(vnode_check_setacl); 2362 2363 return (0); 2364} 2365 2366COUNTER_DECL(vnode_check_setextattr); 2367static int | 2356 struct label *vplabel, acl_type_t type, struct acl *acl) 2357{ 2358 2359 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2360 LABEL_CHECK(vplabel, MAGIC_VNODE); 2361 COUNTER_INC(vnode_check_setacl); 2362 2363 return (0); 2364} 2365 2366COUNTER_DECL(vnode_check_setextattr); 2367static int |
2368mac_test_vnode_check_setextattr(struct ucred *cred, struct vnode *vp, | 2368test_vnode_check_setextattr(struct ucred *cred, struct vnode *vp, |
2369 struct label *vplabel, int attrnamespace, const char *name, 2370 struct uio *uio) 2371{ 2372 2373 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2374 LABEL_CHECK(vplabel, MAGIC_VNODE); 2375 COUNTER_INC(vnode_check_setextattr); 2376 2377 return (0); 2378} 2379 2380COUNTER_DECL(vnode_check_setflags); 2381static int | 2369 struct label *vplabel, int attrnamespace, const char *name, 2370 struct uio *uio) 2371{ 2372 2373 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2374 LABEL_CHECK(vplabel, MAGIC_VNODE); 2375 COUNTER_INC(vnode_check_setextattr); 2376 2377 return (0); 2378} 2379 2380COUNTER_DECL(vnode_check_setflags); 2381static int |
2382mac_test_vnode_check_setflags(struct ucred *cred, struct vnode *vp, | 2382test_vnode_check_setflags(struct ucred *cred, struct vnode *vp, |
2383 struct label *vplabel, u_long flags) 2384{ 2385 2386 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2387 LABEL_CHECK(vplabel, MAGIC_VNODE); 2388 COUNTER_INC(vnode_check_setflags); 2389 2390 return (0); 2391} 2392 2393COUNTER_DECL(vnode_check_setmode); 2394static int | 2383 struct label *vplabel, u_long flags) 2384{ 2385 2386 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2387 LABEL_CHECK(vplabel, MAGIC_VNODE); 2388 COUNTER_INC(vnode_check_setflags); 2389 2390 return (0); 2391} 2392 2393COUNTER_DECL(vnode_check_setmode); 2394static int |
2395mac_test_vnode_check_setmode(struct ucred *cred, struct vnode *vp, | 2395test_vnode_check_setmode(struct ucred *cred, struct vnode *vp, |
2396 struct label *vplabel, mode_t mode) 2397{ 2398 2399 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2400 LABEL_CHECK(vplabel, MAGIC_VNODE); 2401 COUNTER_INC(vnode_check_setmode); 2402 2403 return (0); 2404} 2405 2406COUNTER_DECL(vnode_check_setowner); 2407static int | 2396 struct label *vplabel, mode_t mode) 2397{ 2398 2399 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2400 LABEL_CHECK(vplabel, MAGIC_VNODE); 2401 COUNTER_INC(vnode_check_setmode); 2402 2403 return (0); 2404} 2405 2406COUNTER_DECL(vnode_check_setowner); 2407static int |
2408mac_test_vnode_check_setowner(struct ucred *cred, struct vnode *vp, | 2408test_vnode_check_setowner(struct ucred *cred, struct vnode *vp, |
2409 struct label *vplabel, uid_t uid, gid_t gid) 2410{ 2411 2412 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2413 LABEL_CHECK(vplabel, MAGIC_VNODE); 2414 COUNTER_INC(vnode_check_setowner); 2415 2416 return (0); 2417} 2418 2419COUNTER_DECL(vnode_check_setutimes); 2420static int | 2409 struct label *vplabel, uid_t uid, gid_t gid) 2410{ 2411 2412 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2413 LABEL_CHECK(vplabel, MAGIC_VNODE); 2414 COUNTER_INC(vnode_check_setowner); 2415 2416 return (0); 2417} 2418 2419COUNTER_DECL(vnode_check_setutimes); 2420static int |
2421mac_test_vnode_check_setutimes(struct ucred *cred, struct vnode *vp, | 2421test_vnode_check_setutimes(struct ucred *cred, struct vnode *vp, |
2422 struct label *vplabel, struct timespec atime, struct timespec mtime) 2423{ 2424 2425 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2426 LABEL_CHECK(vplabel, MAGIC_VNODE); 2427 COUNTER_INC(vnode_check_setutimes); 2428 2429 return (0); 2430} 2431 2432COUNTER_DECL(vnode_check_stat); 2433static int | 2422 struct label *vplabel, struct timespec atime, struct timespec mtime) 2423{ 2424 2425 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2426 LABEL_CHECK(vplabel, MAGIC_VNODE); 2427 COUNTER_INC(vnode_check_setutimes); 2428 2429 return (0); 2430} 2431 2432COUNTER_DECL(vnode_check_stat); 2433static int |
2434mac_test_vnode_check_stat(struct ucred *active_cred, struct ucred *file_cred, | 2434test_vnode_check_stat(struct ucred *active_cred, struct ucred *file_cred, |
2435 struct vnode *vp, struct label *vplabel) 2436{ 2437 2438 LABEL_CHECK(active_cred->cr_label, MAGIC_CRED); 2439 if (file_cred != NULL) 2440 LABEL_CHECK(file_cred->cr_label, MAGIC_CRED); 2441 LABEL_CHECK(vplabel, MAGIC_VNODE); 2442 COUNTER_INC(vnode_check_stat); 2443 2444 return (0); 2445} 2446 2447COUNTER_DECL(vnode_check_unlink); 2448static int | 2435 struct vnode *vp, struct label *vplabel) 2436{ 2437 2438 LABEL_CHECK(active_cred->cr_label, MAGIC_CRED); 2439 if (file_cred != NULL) 2440 LABEL_CHECK(file_cred->cr_label, MAGIC_CRED); 2441 LABEL_CHECK(vplabel, MAGIC_VNODE); 2442 COUNTER_INC(vnode_check_stat); 2443 2444 return (0); 2445} 2446 2447COUNTER_DECL(vnode_check_unlink); 2448static int |
2449mac_test_vnode_check_unlink(struct ucred *cred, struct vnode *dvp, | 2449test_vnode_check_unlink(struct ucred *cred, struct vnode *dvp, |
2450 struct label *dvplabel, struct vnode *vp, struct label *vplabel, 2451 struct componentname *cnp) 2452{ 2453 2454 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2455 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2456 LABEL_CHECK(vplabel, MAGIC_VNODE); 2457 COUNTER_INC(vnode_check_unlink); 2458 2459 return (0); 2460} 2461 2462COUNTER_DECL(vnode_check_write); 2463static int | 2450 struct label *dvplabel, struct vnode *vp, struct label *vplabel, 2451 struct componentname *cnp) 2452{ 2453 2454 LABEL_CHECK(cred->cr_label, MAGIC_CRED); 2455 LABEL_CHECK(dvplabel, MAGIC_VNODE); 2456 LABEL_CHECK(vplabel, MAGIC_VNODE); 2457 COUNTER_INC(vnode_check_unlink); 2458 2459 return (0); 2460} 2461 2462COUNTER_DECL(vnode_check_write); 2463static int |
2464mac_test_vnode_check_write(struct ucred *active_cred, | 2464test_vnode_check_write(struct ucred *active_cred, |
2465 struct ucred *file_cred, struct vnode *vp, struct label *vplabel) 2466{ 2467 2468 LABEL_CHECK(active_cred->cr_label, MAGIC_CRED); 2469 if (file_cred != NULL) 2470 LABEL_CHECK(file_cred->cr_label, MAGIC_CRED); 2471 LABEL_CHECK(vplabel, MAGIC_VNODE); 2472 COUNTER_INC(vnode_check_write); 2473 2474 return (0); 2475} 2476 | 2465 struct ucred *file_cred, struct vnode *vp, struct label *vplabel) 2466{ 2467 2468 LABEL_CHECK(active_cred->cr_label, MAGIC_CRED); 2469 if (file_cred != NULL) 2470 LABEL_CHECK(file_cred->cr_label, MAGIC_CRED); 2471 LABEL_CHECK(vplabel, MAGIC_VNODE); 2472 COUNTER_INC(vnode_check_write); 2473 2474 return (0); 2475} 2476 |
2477static struct mac_policy_ops mac_test_ops = | 2477static struct mac_policy_ops test_ops = |
2478{ | 2478{ |
2479 .mpo_bpfdesc_init_label = mac_test_bpfdesc_init_label, 2480 .mpo_cred_init_label = mac_test_cred_init_label, 2481 .mpo_devfs_init_label = mac_test_devfs_init_label, 2482 .mpo_ifnet_init_label = mac_test_ifnet_init_label, 2483 .mpo_sysvmsg_init_label = mac_test_sysvmsg_init_label, 2484 .mpo_sysvmsq_init_label = mac_test_sysvmsq_init_label, 2485 .mpo_sysvsem_init_label = mac_test_sysvsem_init_label, 2486 .mpo_sysvshm_init_label = mac_test_sysvshm_init_label, 2487 .mpo_inpcb_init_label = mac_test_inpcb_init_label, 2488 .mpo_ipq_init_label = mac_test_ipq_init_label, 2489 .mpo_mbuf_init_label = mac_test_mbuf_init_label, 2490 .mpo_mount_init_label = mac_test_mount_init_label, 2491 .mpo_pipe_init_label = mac_test_pipe_init_label, 2492 .mpo_posixsem_init_label = mac_test_posixsem_init_label, 2493 .mpo_proc_init_label = mac_test_proc_init_label, 2494 .mpo_socket_init_label = mac_test_socket_init_label, 2495 .mpo_socketpeer_init_label = mac_test_socketpeer_init_label, 2496 .mpo_vnode_init_label = mac_test_vnode_init_label, 2497 .mpo_bpfdesc_destroy_label = mac_test_bpfdesc_destroy_label, 2498 .mpo_cred_destroy_label = mac_test_cred_destroy_label, 2499 .mpo_devfs_destroy_label = mac_test_devfs_destroy_label, 2500 .mpo_ifnet_destroy_label = mac_test_ifnet_destroy_label, 2501 .mpo_sysvmsg_destroy_label = mac_test_sysvmsg_destroy_label, | 2479 .mpo_bpfdesc_init_label = test_bpfdesc_init_label, 2480 .mpo_cred_init_label = test_cred_init_label, 2481 .mpo_devfs_init_label = test_devfs_init_label, 2482 .mpo_ifnet_init_label = test_ifnet_init_label, 2483 .mpo_sysvmsg_init_label = test_sysvmsg_init_label, 2484 .mpo_sysvmsq_init_label = test_sysvmsq_init_label, 2485 .mpo_sysvsem_init_label = test_sysvsem_init_label, 2486 .mpo_sysvshm_init_label = test_sysvshm_init_label, 2487 .mpo_inpcb_init_label = test_inpcb_init_label, 2488 .mpo_ipq_init_label = test_ipq_init_label, 2489 .mpo_mbuf_init_label = test_mbuf_init_label, 2490 .mpo_mount_init_label = test_mount_init_label, 2491 .mpo_pipe_init_label = test_pipe_init_label, 2492 .mpo_posixsem_init_label = test_posixsem_init_label, 2493 .mpo_proc_init_label = test_proc_init_label, 2494 .mpo_socket_init_label = test_socket_init_label, 2495 .mpo_socketpeer_init_label = test_socketpeer_init_label, 2496 .mpo_vnode_init_label = test_vnode_init_label, 2497 .mpo_bpfdesc_destroy_label = test_bpfdesc_destroy_label, 2498 .mpo_cred_destroy_label = test_cred_destroy_label, 2499 .mpo_devfs_destroy_label = test_devfs_destroy_label, 2500 .mpo_ifnet_destroy_label = test_ifnet_destroy_label, 2501 .mpo_sysvmsg_destroy_label = test_sysvmsg_destroy_label, |
2502 .mpo_sysvmsq_destroy_label = | 2502 .mpo_sysvmsq_destroy_label = |
2503 mac_test_sysvmsq_destroy_label, 2504 .mpo_sysvsem_destroy_label = mac_test_sysvsem_destroy_label, 2505 .mpo_sysvshm_destroy_label = mac_test_sysvshm_destroy_label, 2506 .mpo_inpcb_destroy_label = mac_test_inpcb_destroy_label, 2507 .mpo_ipq_destroy_label = mac_test_ipq_destroy_label, 2508 .mpo_mbuf_destroy_label = mac_test_mbuf_destroy_label, 2509 .mpo_mount_destroy_label = mac_test_mount_destroy_label, 2510 .mpo_pipe_destroy_label = mac_test_pipe_destroy_label, 2511 .mpo_posixsem_destroy_label = mac_test_posixsem_destroy_label, 2512 .mpo_proc_destroy_label = mac_test_proc_destroy_label, 2513 .mpo_socket_destroy_label = mac_test_socket_destroy_label, 2514 .mpo_socketpeer_destroy_label = mac_test_socketpeer_destroy_label, 2515 .mpo_vnode_destroy_label = mac_test_vnode_destroy_label, 2516 .mpo_cred_copy_label = mac_test_cred_copy_label, 2517 .mpo_ifnet_copy_label = mac_test_ifnet_copy_label, 2518 .mpo_mbuf_copy_label = mac_test_mbuf_copy_label, 2519 .mpo_pipe_copy_label = mac_test_pipe_copy_label, 2520 .mpo_socket_copy_label = mac_test_socket_copy_label, 2521 .mpo_vnode_copy_label = mac_test_vnode_copy_label, 2522 .mpo_cred_externalize_label = mac_test_externalize_label, 2523 .mpo_ifnet_externalize_label = mac_test_externalize_label, 2524 .mpo_pipe_externalize_label = mac_test_externalize_label, 2525 .mpo_socket_externalize_label = mac_test_externalize_label, 2526 .mpo_socketpeer_externalize_label = mac_test_externalize_label, 2527 .mpo_vnode_externalize_label = mac_test_externalize_label, 2528 .mpo_cred_internalize_label = mac_test_internalize_label, 2529 .mpo_ifnet_internalize_label = mac_test_internalize_label, 2530 .mpo_pipe_internalize_label = mac_test_internalize_label, 2531 .mpo_socket_internalize_label = mac_test_internalize_label, 2532 .mpo_vnode_internalize_label = mac_test_internalize_label, 2533 .mpo_devfs_vnode_associate = mac_test_devfs_vnode_associate, 2534 .mpo_vnode_associate_extattr = mac_test_vnode_associate_extattr, 2535 .mpo_vnode_associate_singlelabel = mac_test_vnode_associate_singlelabel, 2536 .mpo_devfs_create_device = mac_test_devfs_create_device, 2537 .mpo_devfs_create_directory = mac_test_devfs_create_directory, 2538 .mpo_devfs_create_symlink = mac_test_devfs_create_symlink, 2539 .mpo_vnode_create_extattr = mac_test_vnode_create_extattr, 2540 .mpo_mount_create = mac_test_mount_create, 2541 .mpo_vnode_relabel = mac_test_vnode_relabel, 2542 .mpo_vnode_setlabel_extattr = mac_test_vnode_setlabel_extattr, 2543 .mpo_devfs_update = mac_test_devfs_update, 2544 .mpo_socket_create_mbuf = mac_test_socket_create_mbuf, 2545 .mpo_pipe_create = mac_test_pipe_create, 2546 .mpo_posixsem_create = mac_test_posixsem_create, 2547 .mpo_socket_create = mac_test_socket_create, 2548 .mpo_socket_newconn = mac_test_socket_newconn, 2549 .mpo_pipe_relabel = mac_test_pipe_relabel, 2550 .mpo_socket_relabel = mac_test_socket_relabel, 2551 .mpo_socketpeer_set_from_mbuf = mac_test_socketpeer_set_from_mbuf, 2552 .mpo_socketpeer_set_from_socket = mac_test_socketpeer_set_from_socket, 2553 .mpo_bpfdesc_create = mac_test_bpfdesc_create, 2554 .mpo_ifnet_create = mac_test_ifnet_create, 2555 .mpo_inpcb_create = mac_test_inpcb_create, 2556 .mpo_sysvmsg_create = mac_test_sysvmsg_create, 2557 .mpo_sysvmsq_create = mac_test_sysvmsq_create, 2558 .mpo_sysvsem_create = mac_test_sysvsem_create, 2559 .mpo_sysvshm_create = mac_test_sysvshm_create, 2560 .mpo_ipq_reassemble = mac_test_ipq_reassemble, 2561 .mpo_netinet_fragment = mac_test_netinet_fragment, 2562 .mpo_ipq_create = mac_test_ipq_create, 2563 .mpo_inpcb_create_mbuf = mac_test_inpcb_create_mbuf, 2564 .mpo_create_mbuf_linklayer = mac_test_create_mbuf_linklayer, 2565 .mpo_bpfdesc_create_mbuf = mac_test_bpfdesc_create_mbuf, 2566 .mpo_ifnet_create_mbuf = mac_test_ifnet_create_mbuf, 2567 .mpo_mbuf_create_multicast_encap = mac_test_mbuf_create_multicast_encap, 2568 .mpo_mbuf_create_netlayer = mac_test_mbuf_create_netlayer, 2569 .mpo_ipq_match = mac_test_ipq_match, 2570 .mpo_netinet_icmp_reply = mac_test_netinet_icmp_reply, 2571 .mpo_netinet_tcp_reply = mac_test_netinet_tcp_reply, 2572 .mpo_ifnet_relabel = mac_test_ifnet_relabel, 2573 .mpo_ipq_update = mac_test_ipq_update, 2574 .mpo_inpcb_sosetlabel = mac_test_inpcb_sosetlabel, 2575 .mpo_vnode_execve_transition = mac_test_vnode_execve_transition, | 2503 test_sysvmsq_destroy_label, 2504 .mpo_sysvsem_destroy_label = test_sysvsem_destroy_label, 2505 .mpo_sysvshm_destroy_label = test_sysvshm_destroy_label, 2506 .mpo_inpcb_destroy_label = test_inpcb_destroy_label, 2507 .mpo_ipq_destroy_label = test_ipq_destroy_label, 2508 .mpo_mbuf_destroy_label = test_mbuf_destroy_label, 2509 .mpo_mount_destroy_label = test_mount_destroy_label, 2510 .mpo_pipe_destroy_label = test_pipe_destroy_label, 2511 .mpo_posixsem_destroy_label = test_posixsem_destroy_label, 2512 .mpo_proc_destroy_label = test_proc_destroy_label, 2513 .mpo_socket_destroy_label = test_socket_destroy_label, 2514 .mpo_socketpeer_destroy_label = test_socketpeer_destroy_label, 2515 .mpo_vnode_destroy_label = test_vnode_destroy_label, 2516 .mpo_cred_copy_label = test_cred_copy_label, 2517 .mpo_ifnet_copy_label = test_ifnet_copy_label, 2518 .mpo_mbuf_copy_label = test_mbuf_copy_label, 2519 .mpo_pipe_copy_label = test_pipe_copy_label, 2520 .mpo_socket_copy_label = test_socket_copy_label, 2521 .mpo_vnode_copy_label = test_vnode_copy_label, 2522 .mpo_cred_externalize_label = test_externalize_label, 2523 .mpo_ifnet_externalize_label = test_externalize_label, 2524 .mpo_pipe_externalize_label = test_externalize_label, 2525 .mpo_socket_externalize_label = test_externalize_label, 2526 .mpo_socketpeer_externalize_label = test_externalize_label, 2527 .mpo_vnode_externalize_label = test_externalize_label, 2528 .mpo_cred_internalize_label = test_internalize_label, 2529 .mpo_ifnet_internalize_label = test_internalize_label, 2530 .mpo_pipe_internalize_label = test_internalize_label, 2531 .mpo_socket_internalize_label = test_internalize_label, 2532 .mpo_vnode_internalize_label = test_internalize_label, 2533 .mpo_devfs_vnode_associate = test_devfs_vnode_associate, 2534 .mpo_vnode_associate_extattr = test_vnode_associate_extattr, 2535 .mpo_vnode_associate_singlelabel = test_vnode_associate_singlelabel, 2536 .mpo_devfs_create_device = test_devfs_create_device, 2537 .mpo_devfs_create_directory = test_devfs_create_directory, 2538 .mpo_devfs_create_symlink = test_devfs_create_symlink, 2539 .mpo_vnode_create_extattr = test_vnode_create_extattr, 2540 .mpo_mount_create = test_mount_create, 2541 .mpo_vnode_relabel = test_vnode_relabel, 2542 .mpo_vnode_setlabel_extattr = test_vnode_setlabel_extattr, 2543 .mpo_devfs_update = test_devfs_update, 2544 .mpo_socket_create_mbuf = test_socket_create_mbuf, 2545 .mpo_pipe_create = test_pipe_create, 2546 .mpo_posixsem_create = test_posixsem_create, 2547 .mpo_socket_create = test_socket_create, 2548 .mpo_socket_newconn = test_socket_newconn, 2549 .mpo_pipe_relabel = test_pipe_relabel, 2550 .mpo_socket_relabel = test_socket_relabel, 2551 .mpo_socketpeer_set_from_mbuf = test_socketpeer_set_from_mbuf, 2552 .mpo_socketpeer_set_from_socket = test_socketpeer_set_from_socket, 2553 .mpo_bpfdesc_create = test_bpfdesc_create, 2554 .mpo_ifnet_create = test_ifnet_create, 2555 .mpo_inpcb_create = test_inpcb_create, 2556 .mpo_sysvmsg_create = test_sysvmsg_create, 2557 .mpo_sysvmsq_create = test_sysvmsq_create, 2558 .mpo_sysvsem_create = test_sysvsem_create, 2559 .mpo_sysvshm_create = test_sysvshm_create, 2560 .mpo_ipq_reassemble = test_ipq_reassemble, 2561 .mpo_netinet_fragment = test_netinet_fragment, 2562 .mpo_ipq_create = test_ipq_create, 2563 .mpo_inpcb_create_mbuf = test_inpcb_create_mbuf, 2564 .mpo_create_mbuf_linklayer = test_create_mbuf_linklayer, 2565 .mpo_bpfdesc_create_mbuf = test_bpfdesc_create_mbuf, 2566 .mpo_ifnet_create_mbuf = test_ifnet_create_mbuf, 2567 .mpo_mbuf_create_multicast_encap = test_mbuf_create_multicast_encap, 2568 .mpo_mbuf_create_netlayer = test_mbuf_create_netlayer, 2569 .mpo_ipq_match = test_ipq_match, 2570 .mpo_netinet_icmp_reply = test_netinet_icmp_reply, 2571 .mpo_netinet_tcp_reply = test_netinet_tcp_reply, 2572 .mpo_ifnet_relabel = test_ifnet_relabel, 2573 .mpo_ipq_update = test_ipq_update, 2574 .mpo_inpcb_sosetlabel = test_inpcb_sosetlabel, 2575 .mpo_vnode_execve_transition = test_vnode_execve_transition, |
2576 .mpo_vnode_execve_will_transition = | 2576 .mpo_vnode_execve_will_transition = |
2577 mac_test_vnode_execve_will_transition, 2578 .mpo_proc_create_swapper = mac_test_proc_create_swapper, 2579 .mpo_proc_create_init = mac_test_proc_create_init, 2580 .mpo_cred_relabel = mac_test_cred_relabel, 2581 .mpo_thread_userret = mac_test_thread_userret, 2582 .mpo_sysvmsg_cleanup = mac_test_sysvmsg_cleanup, 2583 .mpo_sysvmsq_cleanup = mac_test_sysvmsq_cleanup, 2584 .mpo_sysvsem_cleanup = mac_test_sysvsem_cleanup, 2585 .mpo_sysvshm_cleanup = mac_test_sysvshm_cleanup, 2586 .mpo_bpfdesc_check_receive = mac_test_bpfdesc_check_receive, 2587 .mpo_cred_check_relabel = mac_test_cred_check_relabel, 2588 .mpo_cred_check_visible = mac_test_cred_check_visible, 2589 .mpo_ifnet_check_relabel = mac_test_ifnet_check_relabel, 2590 .mpo_ifnet_check_transmit = mac_test_ifnet_check_transmit, 2591 .mpo_inpcb_check_deliver = mac_test_inpcb_check_deliver, 2592 .mpo_sysvmsq_check_msgmsq = mac_test_sysvmsq_check_msgmsq, 2593 .mpo_sysvmsq_check_msgrcv = mac_test_sysvmsq_check_msgrcv, 2594 .mpo_sysvmsq_check_msgrmid = mac_test_sysvmsq_check_msgrmid, 2595 .mpo_sysvmsq_check_msqget = mac_test_sysvmsq_check_msqget, 2596 .mpo_sysvmsq_check_msqsnd = mac_test_sysvmsq_check_msqsnd, 2597 .mpo_sysvmsq_check_msqrcv = mac_test_sysvmsq_check_msqrcv, 2598 .mpo_sysvmsq_check_msqctl = mac_test_sysvmsq_check_msqctl, 2599 .mpo_sysvsem_check_semctl = mac_test_sysvsem_check_semctl, 2600 .mpo_sysvsem_check_semget = mac_test_sysvsem_check_semget, 2601 .mpo_sysvsem_check_semop = mac_test_sysvsem_check_semop, 2602 .mpo_sysvshm_check_shmat = mac_test_sysvshm_check_shmat, 2603 .mpo_sysvshm_check_shmctl = mac_test_sysvshm_check_shmctl, 2604 .mpo_sysvshm_check_shmdt = mac_test_sysvshm_check_shmdt, 2605 .mpo_sysvshm_check_shmget = mac_test_sysvshm_check_shmget, 2606 .mpo_kenv_check_dump = mac_test_kenv_check_dump, 2607 .mpo_kenv_check_get = mac_test_kenv_check_get, 2608 .mpo_kenv_check_set = mac_test_kenv_check_set, 2609 .mpo_kenv_check_unset = mac_test_kenv_check_unset, 2610 .mpo_kld_check_load = mac_test_kld_check_load, 2611 .mpo_kld_check_stat = mac_test_kld_check_stat, 2612 .mpo_mount_check_stat = mac_test_mount_check_stat, 2613 .mpo_pipe_check_ioctl = mac_test_pipe_check_ioctl, 2614 .mpo_pipe_check_poll = mac_test_pipe_check_poll, 2615 .mpo_pipe_check_read = mac_test_pipe_check_read, 2616 .mpo_pipe_check_relabel = mac_test_pipe_check_relabel, 2617 .mpo_pipe_check_stat = mac_test_pipe_check_stat, 2618 .mpo_pipe_check_write = mac_test_pipe_check_write, 2619 .mpo_posixsem_check_destroy = mac_test_posixsem_check, 2620 .mpo_posixsem_check_getvalue = mac_test_posixsem_check, 2621 .mpo_posixsem_check_open = mac_test_posixsem_check, 2622 .mpo_posixsem_check_post = mac_test_posixsem_check, 2623 .mpo_posixsem_check_unlink = mac_test_posixsem_check, 2624 .mpo_posixsem_check_wait = mac_test_posixsem_check, 2625 .mpo_proc_check_debug = mac_test_proc_check_debug, 2626 .mpo_proc_check_sched = mac_test_proc_check_sched, 2627 .mpo_proc_check_setaudit = mac_test_proc_check_setaudit, 2628 .mpo_proc_check_setaudit_addr = mac_test_proc_check_setaudit_addr, 2629 .mpo_proc_check_setauid = mac_test_proc_check_setauid, 2630 .mpo_proc_check_setuid = mac_test_proc_check_setuid, 2631 .mpo_proc_check_seteuid = mac_test_proc_check_seteuid, 2632 .mpo_proc_check_setgid = mac_test_proc_check_setgid, 2633 .mpo_proc_check_setegid = mac_test_proc_check_setegid, 2634 .mpo_proc_check_setgroups = mac_test_proc_check_setgroups, 2635 .mpo_proc_check_setreuid = mac_test_proc_check_setreuid, 2636 .mpo_proc_check_setregid = mac_test_proc_check_setregid, 2637 .mpo_proc_check_setresuid = mac_test_proc_check_setresuid, 2638 .mpo_proc_check_setresgid = mac_test_proc_check_setresgid, 2639 .mpo_proc_check_signal = mac_test_proc_check_signal, 2640 .mpo_proc_check_wait = mac_test_proc_check_wait, 2641 .mpo_socket_check_accept = mac_test_socket_check_accept, 2642 .mpo_socket_check_bind = mac_test_socket_check_bind, 2643 .mpo_socket_check_connect = mac_test_socket_check_connect, 2644 .mpo_socket_check_deliver = mac_test_socket_check_deliver, 2645 .mpo_socket_check_listen = mac_test_socket_check_listen, 2646 .mpo_socket_check_poll = mac_test_socket_check_poll, 2647 .mpo_socket_check_receive = mac_test_socket_check_receive, 2648 .mpo_socket_check_relabel = mac_test_socket_check_relabel, 2649 .mpo_socket_check_send = mac_test_socket_check_send, 2650 .mpo_socket_check_stat = mac_test_socket_check_stat, 2651 .mpo_socket_check_visible = mac_test_socket_check_visible, 2652 .mpo_system_check_acct = mac_test_system_check_acct, 2653 .mpo_system_check_audit = mac_test_system_check_audit, 2654 .mpo_system_check_auditctl = mac_test_system_check_auditctl, 2655 .mpo_system_check_auditon = mac_test_system_check_auditon, 2656 .mpo_system_check_reboot = mac_test_system_check_reboot, 2657 .mpo_system_check_swapoff = mac_test_system_check_swapoff, 2658 .mpo_system_check_swapon = mac_test_system_check_swapon, 2659 .mpo_system_check_sysctl = mac_test_system_check_sysctl, 2660 .mpo_vnode_check_access = mac_test_vnode_check_access, 2661 .mpo_vnode_check_chdir = mac_test_vnode_check_chdir, 2662 .mpo_vnode_check_chroot = mac_test_vnode_check_chroot, 2663 .mpo_vnode_check_create = mac_test_vnode_check_create, 2664 .mpo_vnode_check_deleteacl = mac_test_vnode_check_deleteacl, 2665 .mpo_vnode_check_deleteextattr = mac_test_vnode_check_deleteextattr, 2666 .mpo_vnode_check_exec = mac_test_vnode_check_exec, 2667 .mpo_vnode_check_getacl = mac_test_vnode_check_getacl, 2668 .mpo_vnode_check_getextattr = mac_test_vnode_check_getextattr, 2669 .mpo_vnode_check_link = mac_test_vnode_check_link, 2670 .mpo_vnode_check_listextattr = mac_test_vnode_check_listextattr, 2671 .mpo_vnode_check_lookup = mac_test_vnode_check_lookup, 2672 .mpo_vnode_check_mmap = mac_test_vnode_check_mmap, 2673 .mpo_vnode_check_open = mac_test_vnode_check_open, 2674 .mpo_vnode_check_poll = mac_test_vnode_check_poll, 2675 .mpo_vnode_check_read = mac_test_vnode_check_read, 2676 .mpo_vnode_check_readdir = mac_test_vnode_check_readdir, 2677 .mpo_vnode_check_readlink = mac_test_vnode_check_readlink, 2678 .mpo_vnode_check_relabel = mac_test_vnode_check_relabel, 2679 .mpo_vnode_check_rename_from = mac_test_vnode_check_rename_from, 2680 .mpo_vnode_check_rename_to = mac_test_vnode_check_rename_to, 2681 .mpo_vnode_check_revoke = mac_test_vnode_check_revoke, 2682 .mpo_vnode_check_setacl = mac_test_vnode_check_setacl, 2683 .mpo_vnode_check_setextattr = mac_test_vnode_check_setextattr, 2684 .mpo_vnode_check_setflags = mac_test_vnode_check_setflags, 2685 .mpo_vnode_check_setmode = mac_test_vnode_check_setmode, 2686 .mpo_vnode_check_setowner = mac_test_vnode_check_setowner, 2687 .mpo_vnode_check_setutimes = mac_test_vnode_check_setutimes, 2688 .mpo_vnode_check_stat = mac_test_vnode_check_stat, 2689 .mpo_vnode_check_unlink = mac_test_vnode_check_unlink, 2690 .mpo_vnode_check_write = mac_test_vnode_check_write, | 2577 test_vnode_execve_will_transition, 2578 .mpo_proc_create_swapper = test_proc_create_swapper, 2579 .mpo_proc_create_init = test_proc_create_init, 2580 .mpo_cred_relabel = test_cred_relabel, 2581 .mpo_thread_userret = test_thread_userret, 2582 .mpo_sysvmsg_cleanup = test_sysvmsg_cleanup, 2583 .mpo_sysvmsq_cleanup = test_sysvmsq_cleanup, 2584 .mpo_sysvsem_cleanup = test_sysvsem_cleanup, 2585 .mpo_sysvshm_cleanup = test_sysvshm_cleanup, 2586 .mpo_bpfdesc_check_receive = test_bpfdesc_check_receive, 2587 .mpo_cred_check_relabel = test_cred_check_relabel, 2588 .mpo_cred_check_visible = test_cred_check_visible, 2589 .mpo_ifnet_check_relabel = test_ifnet_check_relabel, 2590 .mpo_ifnet_check_transmit = test_ifnet_check_transmit, 2591 .mpo_inpcb_check_deliver = test_inpcb_check_deliver, 2592 .mpo_sysvmsq_check_msgmsq = test_sysvmsq_check_msgmsq, 2593 .mpo_sysvmsq_check_msgrcv = test_sysvmsq_check_msgrcv, 2594 .mpo_sysvmsq_check_msgrmid = test_sysvmsq_check_msgrmid, 2595 .mpo_sysvmsq_check_msqget = test_sysvmsq_check_msqget, 2596 .mpo_sysvmsq_check_msqsnd = test_sysvmsq_check_msqsnd, 2597 .mpo_sysvmsq_check_msqrcv = test_sysvmsq_check_msqrcv, 2598 .mpo_sysvmsq_check_msqctl = test_sysvmsq_check_msqctl, 2599 .mpo_sysvsem_check_semctl = test_sysvsem_check_semctl, 2600 .mpo_sysvsem_check_semget = test_sysvsem_check_semget, 2601 .mpo_sysvsem_check_semop = test_sysvsem_check_semop, 2602 .mpo_sysvshm_check_shmat = test_sysvshm_check_shmat, 2603 .mpo_sysvshm_check_shmctl = test_sysvshm_check_shmctl, 2604 .mpo_sysvshm_check_shmdt = test_sysvshm_check_shmdt, 2605 .mpo_sysvshm_check_shmget = test_sysvshm_check_shmget, 2606 .mpo_kenv_check_dump = test_kenv_check_dump, 2607 .mpo_kenv_check_get = test_kenv_check_get, 2608 .mpo_kenv_check_set = test_kenv_check_set, 2609 .mpo_kenv_check_unset = test_kenv_check_unset, 2610 .mpo_kld_check_load = test_kld_check_load, 2611 .mpo_kld_check_stat = test_kld_check_stat, 2612 .mpo_mount_check_stat = test_mount_check_stat, 2613 .mpo_pipe_check_ioctl = test_pipe_check_ioctl, 2614 .mpo_pipe_check_poll = test_pipe_check_poll, 2615 .mpo_pipe_check_read = test_pipe_check_read, 2616 .mpo_pipe_check_relabel = test_pipe_check_relabel, 2617 .mpo_pipe_check_stat = test_pipe_check_stat, 2618 .mpo_pipe_check_write = test_pipe_check_write, 2619 .mpo_posixsem_check_destroy = test_posixsem_check, 2620 .mpo_posixsem_check_getvalue = test_posixsem_check, 2621 .mpo_posixsem_check_open = test_posixsem_check, 2622 .mpo_posixsem_check_post = test_posixsem_check, 2623 .mpo_posixsem_check_unlink = test_posixsem_check, 2624 .mpo_posixsem_check_wait = test_posixsem_check, 2625 .mpo_proc_check_debug = test_proc_check_debug, 2626 .mpo_proc_check_sched = test_proc_check_sched, 2627 .mpo_proc_check_setaudit = test_proc_check_setaudit, 2628 .mpo_proc_check_setaudit_addr = test_proc_check_setaudit_addr, 2629 .mpo_proc_check_setauid = test_proc_check_setauid, 2630 .mpo_proc_check_setuid = test_proc_check_setuid, 2631 .mpo_proc_check_seteuid = test_proc_check_seteuid, 2632 .mpo_proc_check_setgid = test_proc_check_setgid, 2633 .mpo_proc_check_setegid = test_proc_check_setegid, 2634 .mpo_proc_check_setgroups = test_proc_check_setgroups, 2635 .mpo_proc_check_setreuid = test_proc_check_setreuid, 2636 .mpo_proc_check_setregid = test_proc_check_setregid, 2637 .mpo_proc_check_setresuid = test_proc_check_setresuid, 2638 .mpo_proc_check_setresgid = test_proc_check_setresgid, 2639 .mpo_proc_check_signal = test_proc_check_signal, 2640 .mpo_proc_check_wait = test_proc_check_wait, 2641 .mpo_socket_check_accept = test_socket_check_accept, 2642 .mpo_socket_check_bind = test_socket_check_bind, 2643 .mpo_socket_check_connect = test_socket_check_connect, 2644 .mpo_socket_check_deliver = test_socket_check_deliver, 2645 .mpo_socket_check_listen = test_socket_check_listen, 2646 .mpo_socket_check_poll = test_socket_check_poll, 2647 .mpo_socket_check_receive = test_socket_check_receive, 2648 .mpo_socket_check_relabel = test_socket_check_relabel, 2649 .mpo_socket_check_send = test_socket_check_send, 2650 .mpo_socket_check_stat = test_socket_check_stat, 2651 .mpo_socket_check_visible = test_socket_check_visible, 2652 .mpo_system_check_acct = test_system_check_acct, 2653 .mpo_system_check_audit = test_system_check_audit, 2654 .mpo_system_check_auditctl = test_system_check_auditctl, 2655 .mpo_system_check_auditon = test_system_check_auditon, 2656 .mpo_system_check_reboot = test_system_check_reboot, 2657 .mpo_system_check_swapoff = test_system_check_swapoff, 2658 .mpo_system_check_swapon = test_system_check_swapon, 2659 .mpo_system_check_sysctl = test_system_check_sysctl, 2660 .mpo_vnode_check_access = test_vnode_check_access, 2661 .mpo_vnode_check_chdir = test_vnode_check_chdir, 2662 .mpo_vnode_check_chroot = test_vnode_check_chroot, 2663 .mpo_vnode_check_create = test_vnode_check_create, 2664 .mpo_vnode_check_deleteacl = test_vnode_check_deleteacl, 2665 .mpo_vnode_check_deleteextattr = test_vnode_check_deleteextattr, 2666 .mpo_vnode_check_exec = test_vnode_check_exec, 2667 .mpo_vnode_check_getacl = test_vnode_check_getacl, 2668 .mpo_vnode_check_getextattr = test_vnode_check_getextattr, 2669 .mpo_vnode_check_link = test_vnode_check_link, 2670 .mpo_vnode_check_listextattr = test_vnode_check_listextattr, 2671 .mpo_vnode_check_lookup = test_vnode_check_lookup, 2672 .mpo_vnode_check_mmap = test_vnode_check_mmap, 2673 .mpo_vnode_check_open = test_vnode_check_open, 2674 .mpo_vnode_check_poll = test_vnode_check_poll, 2675 .mpo_vnode_check_read = test_vnode_check_read, 2676 .mpo_vnode_check_readdir = test_vnode_check_readdir, 2677 .mpo_vnode_check_readlink = test_vnode_check_readlink, 2678 .mpo_vnode_check_relabel = test_vnode_check_relabel, 2679 .mpo_vnode_check_rename_from = test_vnode_check_rename_from, 2680 .mpo_vnode_check_rename_to = test_vnode_check_rename_to, 2681 .mpo_vnode_check_revoke = test_vnode_check_revoke, 2682 .mpo_vnode_check_setacl = test_vnode_check_setacl, 2683 .mpo_vnode_check_setextattr = test_vnode_check_setextattr, 2684 .mpo_vnode_check_setflags = test_vnode_check_setflags, 2685 .mpo_vnode_check_setmode = test_vnode_check_setmode, 2686 .mpo_vnode_check_setowner = test_vnode_check_setowner, 2687 .mpo_vnode_check_setutimes = test_vnode_check_setutimes, 2688 .mpo_vnode_check_stat = test_vnode_check_stat, 2689 .mpo_vnode_check_unlink = test_vnode_check_unlink, 2690 .mpo_vnode_check_write = test_vnode_check_write, |
2691}; 2692 | 2691}; 2692 |
2693MAC_POLICY_SET(&mac_test_ops, mac_test, "TrustedBSD MAC/Test", | 2693MAC_POLICY_SET(&test_ops, mac_test, "TrustedBSD MAC/Test", |
2694 MPC_LOADTIME_FLAG_UNLOADOK | MPC_LOADTIME_FLAG_LABELMBUFS, &test_slot); | 2694 MPC_LOADTIME_FLAG_UNLOADOK | MPC_LOADTIME_FLAG_LABELMBUFS, &test_slot); |