security/safesetid/lsm.h

Source file repositories/reference/linux-study-clean/security/safesetid/lsm.h

File Facts

System
Linux kernel
Corpus path
security/safesetid/lsm.h
Extension
.h
Size
1772 bytes
Lines
76
Domain
Core OS
Bucket
Security And Isolation
Inferred role
Core OS: implementation source
Status
source implementation candidate

Why This File Exists

Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.

Dependency Surface

Detected Declarations

Annotated Snippet

struct setid_rule {
	struct hlist_node next;
	kid_t src_id;
	kid_t dst_id;

	/* Flag to signal if rule is for UID's or GID's */
	enum setid_type type;
};

#define SETID_HASH_BITS 8 /* 256 buckets in hash table */

/* Extension of INVALID_UID/INVALID_GID for kid_t type */
#define INVALID_ID (kid_t){.uid = INVALID_UID}

struct setid_ruleset {
	DECLARE_HASHTABLE(rules, SETID_HASH_BITS);
	char *policy_str;
	struct rcu_head rcu;

	//Flag to signal if ruleset is for UID's or GID's
	enum setid_type type;
};

enum sid_policy_type _setid_policy_lookup(struct setid_ruleset *policy,
		kid_t src, kid_t dst);

extern struct setid_ruleset __rcu *safesetid_setuid_rules;
extern struct setid_ruleset __rcu *safesetid_setgid_rules;

int safesetid_init_securityfs(void);

#endif /* _SAFESETID_H */

Annotation

Implementation Notes