Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 562c99f2 authored by Wanlong Gao's avatar Wanlong Gao Committed by Eric Paris
Browse files

SELinux: avc: remove the useless fields in avc_add_callback



avc_add_callback now just used for registering reset functions
in initcalls, and the callback functions just did reset operations.
So, reducing the arguments to only one event is enough now.

Signed-off-by: default avatarWanlong Gao <gaowanlong@cn.fujitsu.com>
Signed-off-by: default avatarEric Paris <eparis@redhat.com>
parent 0b36e44c
Loading
Loading
Loading
Loading
+6 −26
Original line number Diff line number Diff line
@@ -65,14 +65,8 @@ struct avc_cache {
};

struct avc_callback_node {
	int (*callback) (u32 event, u32 ssid, u32 tsid,
			 u16 tclass, u32 perms,
			 u32 *out_retained);
	int (*callback) (u32 event);
	u32 events;
	u32 ssid;
	u32 tsid;
	u16 tclass;
	u32 perms;
	struct avc_callback_node *next;
};

@@ -499,22 +493,12 @@ noinline int slow_avc_audit(u32 ssid, u32 tsid, u16 tclass,
 * avc_add_callback - Register a callback for security events.
 * @callback: callback function
 * @events: security events
 * @ssid: source security identifier or %SECSID_WILD
 * @tsid: target security identifier or %SECSID_WILD
 * @tclass: target security class
 * @perms: permissions
 *
 * Register a callback function for events in the set @events
 * related to the SID pair (@ssid, @tsid) 
 * and the permissions @perms, interpreting
 * @perms based on @tclass.  Returns %0 on success or
 * -%ENOMEM if insufficient memory exists to add the callback.
 * Register a callback function for events in the set @events.
 * Returns %0 on success or -%ENOMEM if insufficient memory
 * exists to add the callback.
 */
int __init avc_add_callback(int (*callback)(u32 event, u32 ssid, u32 tsid,
				     u16 tclass, u32 perms,
				     u32 *out_retained),
		     u32 events, u32 ssid, u32 tsid,
		     u16 tclass, u32 perms)
int __init avc_add_callback(int (*callback)(u32 event), u32 events)
{
	struct avc_callback_node *c;
	int rc = 0;
@@ -527,9 +511,6 @@ int __init avc_add_callback(int (*callback)(u32 event, u32 ssid, u32 tsid,

	c->callback = callback;
	c->events = events;
	c->ssid = ssid;
	c->tsid = tsid;
	c->perms = perms;
	c->next = avc_callbacks;
	avc_callbacks = c;
out:
@@ -669,8 +650,7 @@ int avc_ss_reset(u32 seqno)

	for (c = avc_callbacks; c; c = c->next) {
		if (c->events & AVC_CALLBACK_RESET) {
			tmprc = c->callback(AVC_CALLBACK_RESET,
					    0, 0, 0, 0, NULL);
			tmprc = c->callback(AVC_CALLBACK_RESET);
			/* save the first error encountered for the return
			   value and continue processing the callbacks */
			if (!rc)
+1 −5
Original line number Diff line number Diff line
@@ -170,11 +170,7 @@ u32 avc_policy_seqno(void);
#define AVC_CALLBACK_AUDITDENY_ENABLE	64
#define AVC_CALLBACK_AUDITDENY_DISABLE	128

int avc_add_callback(int (*callback)(u32 event, u32 ssid, u32 tsid,
				     u16 tclass, u32 perms,
				     u32 *out_retained),
		     u32 events, u32 ssid, u32 tsid,
		     u16 tclass, u32 perms);
int avc_add_callback(int (*callback)(u32 event), u32 events);

/* Exported to selinuxfs */
int avc_get_hash_stats(char *page);
+2 −4
Original line number Diff line number Diff line
@@ -252,8 +252,7 @@ static void sel_netif_flush(void)
	spin_unlock_bh(&sel_netif_lock);
}

static int sel_netif_avc_callback(u32 event, u32 ssid, u32 tsid,
				  u16 class, u32 perms, u32 *retained)
static int sel_netif_avc_callback(u32 event)
{
	if (event == AVC_CALLBACK_RESET) {
		sel_netif_flush();
@@ -292,8 +291,7 @@ static __init int sel_netif_init(void)

	register_netdevice_notifier(&sel_netif_netdev_notifier);

	err = avc_add_callback(sel_netif_avc_callback, AVC_CALLBACK_RESET,
			       SECSID_NULL, SECSID_NULL, SECCLASS_NULL, 0);
	err = avc_add_callback(sel_netif_avc_callback, AVC_CALLBACK_RESET);
	if (err)
		panic("avc_add_callback() failed, error %d\n", err);

+2 −4
Original line number Diff line number Diff line
@@ -297,8 +297,7 @@ static void sel_netnode_flush(void)
	spin_unlock_bh(&sel_netnode_lock);
}

static int sel_netnode_avc_callback(u32 event, u32 ssid, u32 tsid,
				    u16 class, u32 perms, u32 *retained)
static int sel_netnode_avc_callback(u32 event)
{
	if (event == AVC_CALLBACK_RESET) {
		sel_netnode_flush();
@@ -320,8 +319,7 @@ static __init int sel_netnode_init(void)
		sel_netnode_hash[iter].size = 0;
	}

	ret = avc_add_callback(sel_netnode_avc_callback, AVC_CALLBACK_RESET,
			       SECSID_NULL, SECSID_NULL, SECCLASS_NULL, 0);
	ret = avc_add_callback(sel_netnode_avc_callback, AVC_CALLBACK_RESET);
	if (ret != 0)
		panic("avc_add_callback() failed, error %d\n", ret);

+2 −4
Original line number Diff line number Diff line
@@ -234,8 +234,7 @@ static void sel_netport_flush(void)
	spin_unlock_bh(&sel_netport_lock);
}

static int sel_netport_avc_callback(u32 event, u32 ssid, u32 tsid,
				    u16 class, u32 perms, u32 *retained)
static int sel_netport_avc_callback(u32 event)
{
	if (event == AVC_CALLBACK_RESET) {
		sel_netport_flush();
@@ -257,8 +256,7 @@ static __init int sel_netport_init(void)
		sel_netport_hash[iter].size = 0;
	}

	ret = avc_add_callback(sel_netport_avc_callback, AVC_CALLBACK_RESET,
			       SECSID_NULL, SECSID_NULL, SECCLASS_NULL, 0);
	ret = avc_add_callback(sel_netport_avc_callback, AVC_CALLBACK_RESET);
	if (ret != 0)
		panic("avc_add_callback() failed, error %d\n", ret);

Loading