Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
net
netlabel
netlabel_user.c
Go to the documentation of this file.
1
/*
2
* NetLabel NETLINK Interface
3
*
4
* This file defines the NETLINK interface for the NetLabel system. The
5
* NetLabel system manages static and dynamic label mappings for network
6
* protocols such as CIPSO and RIPSO.
7
*
8
* Author: Paul Moore <
[email protected]
>
9
*
10
*/
11
12
/*
13
* (c) Copyright Hewlett-Packard Development Company, L.P., 2006
14
*
15
* This program is free software; you can redistribute it and/or modify
16
* it under the terms of the GNU General Public License as published by
17
* the Free Software Foundation; either version 2 of the License, or
18
* (at your option) any later version.
19
*
20
* This program is distributed in the hope that it will be useful,
21
* but WITHOUT ANY WARRANTY; without even the implied warranty of
22
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
23
* the GNU General Public License for more details.
24
*
25
* You should have received a copy of the GNU General Public License
26
* along with this program; if not, write to the Free Software
27
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28
*
29
*/
30
31
#include <
linux/init.h
>
32
#include <linux/types.h>
33
#include <linux/list.h>
34
#include <linux/socket.h>
35
#include <linux/audit.h>
36
#include <linux/tty.h>
37
#include <
linux/security.h
>
38
#include <
linux/gfp.h
>
39
#include <
net/sock.h
>
40
#include <
net/netlink.h
>
41
#include <
net/genetlink.h
>
42
#include <
net/netlabel.h
>
43
#include <asm/bug.h>
44
45
#include "
netlabel_mgmt.h
"
46
#include "
netlabel_unlabeled.h
"
47
#include "
netlabel_cipso_v4.h
"
48
#include "
netlabel_user.h
"
49
50
/*
51
* NetLabel NETLINK Setup Functions
52
*/
53
63
int
__init
netlbl_netlink_init
(
void
)
64
{
65
int
ret_val;
66
67
ret_val =
netlbl_mgmt_genl_init
();
68
if
(ret_val != 0)
69
return
ret_val;
70
71
ret_val =
netlbl_cipsov4_genl_init
();
72
if
(ret_val != 0)
73
return
ret_val;
74
75
ret_val =
netlbl_unlabel_genl_init
();
76
if
(ret_val != 0)
77
return
ret_val;
78
79
return
0;
80
}
81
82
/*
83
* NetLabel Audit Functions
84
*/
85
97
struct
audit_buffer
*
netlbl_audit_start_common
(
int
type
,
98
struct
netlbl_audit
*audit_info)
99
{
100
struct
audit_buffer
*audit_buf;
101
char
*secctx;
102
u32
secctx_len;
103
104
if
(
audit_enabled
== 0)
105
return
NULL
;
106
107
audit_buf =
audit_log_start
(
current
->audit_context,
GFP_ATOMIC
, type);
108
if
(audit_buf ==
NULL
)
109
return
NULL
;
110
111
audit_log_format
(audit_buf,
"netlabel: auid=%u ses=%u"
,
112
from_kuid
(&
init_user_ns
, audit_info->
loginuid
),
113
audit_info->
sessionid
);
114
115
if
(audit_info->
secid
!= 0 &&
116
security_secid_to_secctx
(audit_info->
secid
,
117
&secctx,
118
&secctx_len) == 0) {
119
audit_log_format
(audit_buf,
" subj=%s"
, secctx);
120
security_release_secctx
(secctx, secctx_len);
121
}
122
123
return
audit_buf;
124
}
Generated on Thu Jan 10 2013 15:01:03 for Linux Kernel by
1.8.2