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: Wanlong Gao <gaowanlong@cn.fujitsu.com> Signed-off-by: Eric Paris <eparis@redhat.com>
This commit is contained in:
@@ -65,14 +65,8 @@ struct avc_cache {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct avc_callback_node {
|
struct avc_callback_node {
|
||||||
int (*callback) (u32 event, u32 ssid, u32 tsid,
|
int (*callback) (u32 event);
|
||||||
u16 tclass, u32 perms,
|
|
||||||
u32 *out_retained);
|
|
||||||
u32 events;
|
u32 events;
|
||||||
u32 ssid;
|
|
||||||
u32 tsid;
|
|
||||||
u16 tclass;
|
|
||||||
u32 perms;
|
|
||||||
struct avc_callback_node *next;
|
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.
|
* avc_add_callback - Register a callback for security events.
|
||||||
* @callback: callback function
|
* @callback: callback function
|
||||||
* @events: security events
|
* @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
|
* Register a callback function for events in the set @events.
|
||||||
* related to the SID pair (@ssid, @tsid)
|
* Returns %0 on success or -%ENOMEM if insufficient memory
|
||||||
* and the permissions @perms, interpreting
|
* exists to add the callback.
|
||||||
* @perms based on @tclass. 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,
|
int __init avc_add_callback(int (*callback)(u32 event), u32 events)
|
||||||
u16 tclass, u32 perms,
|
|
||||||
u32 *out_retained),
|
|
||||||
u32 events, u32 ssid, u32 tsid,
|
|
||||||
u16 tclass, u32 perms)
|
|
||||||
{
|
{
|
||||||
struct avc_callback_node *c;
|
struct avc_callback_node *c;
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
@@ -527,9 +511,6 @@ int __init avc_add_callback(int (*callback)(u32 event, u32 ssid, u32 tsid,
|
|||||||
|
|
||||||
c->callback = callback;
|
c->callback = callback;
|
||||||
c->events = events;
|
c->events = events;
|
||||||
c->ssid = ssid;
|
|
||||||
c->tsid = tsid;
|
|
||||||
c->perms = perms;
|
|
||||||
c->next = avc_callbacks;
|
c->next = avc_callbacks;
|
||||||
avc_callbacks = c;
|
avc_callbacks = c;
|
||||||
out:
|
out:
|
||||||
@@ -669,8 +650,7 @@ int avc_ss_reset(u32 seqno)
|
|||||||
|
|
||||||
for (c = avc_callbacks; c; c = c->next) {
|
for (c = avc_callbacks; c; c = c->next) {
|
||||||
if (c->events & AVC_CALLBACK_RESET) {
|
if (c->events & AVC_CALLBACK_RESET) {
|
||||||
tmprc = c->callback(AVC_CALLBACK_RESET,
|
tmprc = c->callback(AVC_CALLBACK_RESET);
|
||||||
0, 0, 0, 0, NULL);
|
|
||||||
/* save the first error encountered for the return
|
/* save the first error encountered for the return
|
||||||
value and continue processing the callbacks */
|
value and continue processing the callbacks */
|
||||||
if (!rc)
|
if (!rc)
|
||||||
|
@@ -170,11 +170,7 @@ u32 avc_policy_seqno(void);
|
|||||||
#define AVC_CALLBACK_AUDITDENY_ENABLE 64
|
#define AVC_CALLBACK_AUDITDENY_ENABLE 64
|
||||||
#define AVC_CALLBACK_AUDITDENY_DISABLE 128
|
#define AVC_CALLBACK_AUDITDENY_DISABLE 128
|
||||||
|
|
||||||
int avc_add_callback(int (*callback)(u32 event, u32 ssid, u32 tsid,
|
int avc_add_callback(int (*callback)(u32 event), u32 events);
|
||||||
u16 tclass, u32 perms,
|
|
||||||
u32 *out_retained),
|
|
||||||
u32 events, u32 ssid, u32 tsid,
|
|
||||||
u16 tclass, u32 perms);
|
|
||||||
|
|
||||||
/* Exported to selinuxfs */
|
/* Exported to selinuxfs */
|
||||||
int avc_get_hash_stats(char *page);
|
int avc_get_hash_stats(char *page);
|
||||||
|
@@ -252,8 +252,7 @@ static void sel_netif_flush(void)
|
|||||||
spin_unlock_bh(&sel_netif_lock);
|
spin_unlock_bh(&sel_netif_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sel_netif_avc_callback(u32 event, u32 ssid, u32 tsid,
|
static int sel_netif_avc_callback(u32 event)
|
||||||
u16 class, u32 perms, u32 *retained)
|
|
||||||
{
|
{
|
||||||
if (event == AVC_CALLBACK_RESET) {
|
if (event == AVC_CALLBACK_RESET) {
|
||||||
sel_netif_flush();
|
sel_netif_flush();
|
||||||
@@ -292,8 +291,7 @@ static __init int sel_netif_init(void)
|
|||||||
|
|
||||||
register_netdevice_notifier(&sel_netif_netdev_notifier);
|
register_netdevice_notifier(&sel_netif_netdev_notifier);
|
||||||
|
|
||||||
err = avc_add_callback(sel_netif_avc_callback, AVC_CALLBACK_RESET,
|
err = avc_add_callback(sel_netif_avc_callback, AVC_CALLBACK_RESET);
|
||||||
SECSID_NULL, SECSID_NULL, SECCLASS_NULL, 0);
|
|
||||||
if (err)
|
if (err)
|
||||||
panic("avc_add_callback() failed, error %d\n", err);
|
panic("avc_add_callback() failed, error %d\n", err);
|
||||||
|
|
||||||
|
@@ -297,8 +297,7 @@ static void sel_netnode_flush(void)
|
|||||||
spin_unlock_bh(&sel_netnode_lock);
|
spin_unlock_bh(&sel_netnode_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sel_netnode_avc_callback(u32 event, u32 ssid, u32 tsid,
|
static int sel_netnode_avc_callback(u32 event)
|
||||||
u16 class, u32 perms, u32 *retained)
|
|
||||||
{
|
{
|
||||||
if (event == AVC_CALLBACK_RESET) {
|
if (event == AVC_CALLBACK_RESET) {
|
||||||
sel_netnode_flush();
|
sel_netnode_flush();
|
||||||
@@ -320,8 +319,7 @@ static __init int sel_netnode_init(void)
|
|||||||
sel_netnode_hash[iter].size = 0;
|
sel_netnode_hash[iter].size = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = avc_add_callback(sel_netnode_avc_callback, AVC_CALLBACK_RESET,
|
ret = avc_add_callback(sel_netnode_avc_callback, AVC_CALLBACK_RESET);
|
||||||
SECSID_NULL, SECSID_NULL, SECCLASS_NULL, 0);
|
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
panic("avc_add_callback() failed, error %d\n", ret);
|
panic("avc_add_callback() failed, error %d\n", ret);
|
||||||
|
|
||||||
|
@@ -234,8 +234,7 @@ static void sel_netport_flush(void)
|
|||||||
spin_unlock_bh(&sel_netport_lock);
|
spin_unlock_bh(&sel_netport_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sel_netport_avc_callback(u32 event, u32 ssid, u32 tsid,
|
static int sel_netport_avc_callback(u32 event)
|
||||||
u16 class, u32 perms, u32 *retained)
|
|
||||||
{
|
{
|
||||||
if (event == AVC_CALLBACK_RESET) {
|
if (event == AVC_CALLBACK_RESET) {
|
||||||
sel_netport_flush();
|
sel_netport_flush();
|
||||||
@@ -257,8 +256,7 @@ static __init int sel_netport_init(void)
|
|||||||
sel_netport_hash[iter].size = 0;
|
sel_netport_hash[iter].size = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = avc_add_callback(sel_netport_avc_callback, AVC_CALLBACK_RESET,
|
ret = avc_add_callback(sel_netport_avc_callback, AVC_CALLBACK_RESET);
|
||||||
SECSID_NULL, SECSID_NULL, SECCLASS_NULL, 0);
|
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
panic("avc_add_callback() failed, error %d\n", ret);
|
panic("avc_add_callback() failed, error %d\n", ret);
|
||||||
|
|
||||||
|
@@ -3044,8 +3044,7 @@ out:
|
|||||||
|
|
||||||
static int (*aurule_callback)(void) = audit_update_lsm_rules;
|
static int (*aurule_callback)(void) = audit_update_lsm_rules;
|
||||||
|
|
||||||
static int aurule_avc_callback(u32 event, u32 ssid, u32 tsid,
|
static int aurule_avc_callback(u32 event)
|
||||||
u16 class, u32 perms, u32 *retained)
|
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
@@ -3058,8 +3057,7 @@ static int __init aurule_init(void)
|
|||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = avc_add_callback(aurule_avc_callback, AVC_CALLBACK_RESET,
|
err = avc_add_callback(aurule_avc_callback, AVC_CALLBACK_RESET);
|
||||||
SECSID_NULL, SECSID_NULL, SECCLASS_NULL, 0);
|
|
||||||
if (err)
|
if (err)
|
||||||
panic("avc_add_callback() failed, error %d\n", err);
|
panic("avc_add_callback() failed, error %d\n", err);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user