xref: /aosp_15_r20/external/selinux/libsepol/src/handle.c (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
1*2d543d20SAndroid Build Coastguard Worker #include <stdlib.h>
2*2d543d20SAndroid Build Coastguard Worker #include <assert.h>
3*2d543d20SAndroid Build Coastguard Worker #include "handle.h"
4*2d543d20SAndroid Build Coastguard Worker #include "debug.h"
5*2d543d20SAndroid Build Coastguard Worker 
sepol_handle_create(void)6*2d543d20SAndroid Build Coastguard Worker sepol_handle_t *sepol_handle_create(void)
7*2d543d20SAndroid Build Coastguard Worker {
8*2d543d20SAndroid Build Coastguard Worker 
9*2d543d20SAndroid Build Coastguard Worker 	sepol_handle_t *sh = malloc(sizeof(sepol_handle_t));
10*2d543d20SAndroid Build Coastguard Worker 	if (sh == NULL)
11*2d543d20SAndroid Build Coastguard Worker 		return NULL;
12*2d543d20SAndroid Build Coastguard Worker 
13*2d543d20SAndroid Build Coastguard Worker 	/* Set callback */
14*2d543d20SAndroid Build Coastguard Worker 	sh->msg_callback = sepol_msg_default_handler;
15*2d543d20SAndroid Build Coastguard Worker 	sh->msg_callback_arg = NULL;
16*2d543d20SAndroid Build Coastguard Worker 
17*2d543d20SAndroid Build Coastguard Worker 	/* by default do not disable dontaudits */
18*2d543d20SAndroid Build Coastguard Worker 	sh->disable_dontaudit = 0;
19*2d543d20SAndroid Build Coastguard Worker 	sh->expand_consume_base = 0;
20*2d543d20SAndroid Build Coastguard Worker 
21*2d543d20SAndroid Build Coastguard Worker 	/* by default needless unused branch of tunables would be discarded  */
22*2d543d20SAndroid Build Coastguard Worker 	sh->preserve_tunables = 0;
23*2d543d20SAndroid Build Coastguard Worker 
24*2d543d20SAndroid Build Coastguard Worker 	return sh;
25*2d543d20SAndroid Build Coastguard Worker }
26*2d543d20SAndroid Build Coastguard Worker 
sepol_get_preserve_tunables(sepol_handle_t * sh)27*2d543d20SAndroid Build Coastguard Worker int sepol_get_preserve_tunables(sepol_handle_t *sh)
28*2d543d20SAndroid Build Coastguard Worker {
29*2d543d20SAndroid Build Coastguard Worker 	assert(sh != NULL);
30*2d543d20SAndroid Build Coastguard Worker 	return sh->preserve_tunables;
31*2d543d20SAndroid Build Coastguard Worker }
32*2d543d20SAndroid Build Coastguard Worker 
sepol_set_preserve_tunables(sepol_handle_t * sh,int preserve_tunables)33*2d543d20SAndroid Build Coastguard Worker void sepol_set_preserve_tunables(sepol_handle_t * sh, int preserve_tunables)
34*2d543d20SAndroid Build Coastguard Worker {
35*2d543d20SAndroid Build Coastguard Worker 	assert(sh !=NULL);
36*2d543d20SAndroid Build Coastguard Worker 	sh->preserve_tunables = preserve_tunables;
37*2d543d20SAndroid Build Coastguard Worker }
38*2d543d20SAndroid Build Coastguard Worker 
sepol_get_disable_dontaudit(sepol_handle_t * sh)39*2d543d20SAndroid Build Coastguard Worker int sepol_get_disable_dontaudit(sepol_handle_t *sh)
40*2d543d20SAndroid Build Coastguard Worker {
41*2d543d20SAndroid Build Coastguard Worker 	assert(sh !=NULL);
42*2d543d20SAndroid Build Coastguard Worker 	return sh->disable_dontaudit;
43*2d543d20SAndroid Build Coastguard Worker }
44*2d543d20SAndroid Build Coastguard Worker 
sepol_set_disable_dontaudit(sepol_handle_t * sh,int disable_dontaudit)45*2d543d20SAndroid Build Coastguard Worker void sepol_set_disable_dontaudit(sepol_handle_t * sh, int disable_dontaudit)
46*2d543d20SAndroid Build Coastguard Worker {
47*2d543d20SAndroid Build Coastguard Worker 	assert(sh !=NULL);
48*2d543d20SAndroid Build Coastguard Worker 	sh->disable_dontaudit = disable_dontaudit;
49*2d543d20SAndroid Build Coastguard Worker }
50*2d543d20SAndroid Build Coastguard Worker 
sepol_set_expand_consume_base(sepol_handle_t * sh,int consume_base)51*2d543d20SAndroid Build Coastguard Worker void sepol_set_expand_consume_base(sepol_handle_t *sh, int consume_base)
52*2d543d20SAndroid Build Coastguard Worker {
53*2d543d20SAndroid Build Coastguard Worker 	assert(sh != NULL);
54*2d543d20SAndroid Build Coastguard Worker 	sh->expand_consume_base = consume_base;
55*2d543d20SAndroid Build Coastguard Worker }
56*2d543d20SAndroid Build Coastguard Worker 
sepol_handle_destroy(sepol_handle_t * sh)57*2d543d20SAndroid Build Coastguard Worker void sepol_handle_destroy(sepol_handle_t * sh)
58*2d543d20SAndroid Build Coastguard Worker {
59*2d543d20SAndroid Build Coastguard Worker 	free(sh);
60*2d543d20SAndroid Build Coastguard Worker }
61