diff options
Diffstat (limited to 'security/selinux/nlmsgtab.c')
| -rw-r--r-- | security/selinux/nlmsgtab.c | 25 | 
1 files changed, 12 insertions, 13 deletions
diff --git a/security/selinux/nlmsgtab.c b/security/selinux/nlmsgtab.c index 75ec0c6ebac..2df7b900e25 100644 --- a/security/selinux/nlmsgtab.c +++ b/security/selinux/nlmsgtab.c @@ -14,13 +14,14 @@  #include <linux/netlink.h>  #include <linux/rtnetlink.h>  #include <linux/if.h> -#include <linux/netfilter_ipv4/ip_queue.h>  #include <linux/inet_diag.h>  #include <linux/xfrm.h>  #include <linux/audit.h> +#include <linux/sock_diag.h>  #include "flask.h"  #include "av_permissions.h" +#include "security.h"  struct nlmsg_perm {  	u16	nlmsg_type; @@ -65,18 +66,20 @@ static struct nlmsg_perm nlmsg_route_perms[] =  	{ RTM_NEWADDRLABEL,	NETLINK_ROUTE_SOCKET__NLMSG_WRITE },  	{ RTM_DELADDRLABEL,	NETLINK_ROUTE_SOCKET__NLMSG_WRITE },  	{ RTM_GETADDRLABEL,	NETLINK_ROUTE_SOCKET__NLMSG_READ  }, -}; - -static struct nlmsg_perm nlmsg_firewall_perms[] = -{ -	{ IPQM_MODE,		NETLINK_FIREWALL_SOCKET__NLMSG_WRITE }, -	{ IPQM_VERDICT,		NETLINK_FIREWALL_SOCKET__NLMSG_WRITE }, +	{ RTM_GETDCB,		NETLINK_ROUTE_SOCKET__NLMSG_READ  }, +	{ RTM_SETDCB,		NETLINK_ROUTE_SOCKET__NLMSG_WRITE }, +	{ RTM_NEWNETCONF,	NETLINK_ROUTE_SOCKET__NLMSG_WRITE }, +	{ RTM_GETNETCONF,	NETLINK_ROUTE_SOCKET__NLMSG_READ  }, +	{ RTM_NEWMDB,		NETLINK_ROUTE_SOCKET__NLMSG_WRITE }, +	{ RTM_DELMDB,		NETLINK_ROUTE_SOCKET__NLMSG_WRITE  }, +	{ RTM_GETMDB,		NETLINK_ROUTE_SOCKET__NLMSG_READ  },  };  static struct nlmsg_perm nlmsg_tcpdiag_perms[] =  {  	{ TCPDIAG_GETSOCK,	NETLINK_TCPDIAG_SOCKET__NLMSG_READ },  	{ DCCPDIAG_GETSOCK,	NETLINK_TCPDIAG_SOCKET__NLMSG_READ }, +	{ SOCK_DIAG_BY_FAMILY,	NETLINK_TCPDIAG_SOCKET__NLMSG_READ },  };  static struct nlmsg_perm nlmsg_xfrm_perms[] = @@ -115,6 +118,8 @@ static struct nlmsg_perm nlmsg_audit_perms[] =  	{ AUDIT_MAKE_EQUIV,	NETLINK_AUDIT_SOCKET__NLMSG_WRITE    },  	{ AUDIT_TTY_GET,	NETLINK_AUDIT_SOCKET__NLMSG_READ     },  	{ AUDIT_TTY_SET,	NETLINK_AUDIT_SOCKET__NLMSG_TTY_AUDIT	}, +	{ AUDIT_GET_FEATURE,	NETLINK_AUDIT_SOCKET__NLMSG_READ     }, +	{ AUDIT_SET_FEATURE,	NETLINK_AUDIT_SOCKET__NLMSG_WRITE    },  }; @@ -142,12 +147,6 @@ int selinux_nlmsg_lookup(u16 sclass, u16 nlmsg_type, u32 *perm)  				 sizeof(nlmsg_route_perms));  		break; -	case SECCLASS_NETLINK_FIREWALL_SOCKET: -	case SECCLASS_NETLINK_IP6FW_SOCKET: -		err = nlmsg_perm(nlmsg_type, perm, nlmsg_firewall_perms, -				 sizeof(nlmsg_firewall_perms)); -		break; -  	case SECCLASS_NETLINK_TCPDIAG_SOCKET:  		err = nlmsg_perm(nlmsg_type, perm, nlmsg_tcpdiag_perms,  				 sizeof(nlmsg_tcpdiag_perms));  | 
