MCPcopy Create free account
hub / github.com/F-Stack/f-stack / mac_policy_getlabeled

Function mac_policy_getlabeled

freebsd/security/mac/mac_framework.c:347–380  ·  view source on GitHub ↗

* Given a policy, derive from its set of non-NULL label init methods what * object types the policy is interested in. */

Source from the content-addressed store, hash-verified

345 * object types the policy is interested in.
346 */
347static uint64_t
348mac_policy_getlabeled(struct mac_policy_conf *mpc)
349{
350 uint64_t labeled;
351
352#define MPC_FLAG(method, flag) \
353 if (mpc->mpc_ops->mpo_ ## method != NULL) \
354 labeled |= (flag); \
355
356 labeled = 0;
357 MPC_FLAG(cred_init_label, MPC_OBJECT_CRED);
358 MPC_FLAG(proc_init_label, MPC_OBJECT_PROC);
359 MPC_FLAG(vnode_init_label, MPC_OBJECT_VNODE);
360 MPC_FLAG(inpcb_init_label, MPC_OBJECT_INPCB);
361 MPC_FLAG(socket_init_label, MPC_OBJECT_SOCKET);
362 MPC_FLAG(devfs_init_label, MPC_OBJECT_DEVFS);
363 MPC_FLAG(mbuf_init_label, MPC_OBJECT_MBUF);
364 MPC_FLAG(ipq_init_label, MPC_OBJECT_IPQ);
365 MPC_FLAG(ifnet_init_label, MPC_OBJECT_IFNET);
366 MPC_FLAG(bpfdesc_init_label, MPC_OBJECT_BPFDESC);
367 MPC_FLAG(pipe_init_label, MPC_OBJECT_PIPE);
368 MPC_FLAG(mount_init_label, MPC_OBJECT_MOUNT);
369 MPC_FLAG(posixsem_init_label, MPC_OBJECT_POSIXSEM);
370 MPC_FLAG(posixshm_init_label, MPC_OBJECT_POSIXSHM);
371 MPC_FLAG(sysvmsg_init_label, MPC_OBJECT_SYSVMSG);
372 MPC_FLAG(sysvmsq_init_label, MPC_OBJECT_SYSVMSQ);
373 MPC_FLAG(sysvsem_init_label, MPC_OBJECT_SYSVSEM);
374 MPC_FLAG(sysvshm_init_label, MPC_OBJECT_SYSVSHM);
375 MPC_FLAG(syncache_init_label, MPC_OBJECT_SYNCACHE);
376 MPC_FLAG(ip6q_init_label, MPC_OBJECT_IP6Q);
377
378#undef MPC_FLAG
379 return (labeled);
380}
381
382/*
383 * When policies are loaded or unloaded, walk the list of registered policies

Callers 1

mac_policy_updateFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected