diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/cipso_ipv4.c | 41 | ||||
-rw-r--r-- | net/netlabel/netlabel_kapi.c | 43 |
2 files changed, 17 insertions, 67 deletions
diff --git a/net/ipv4/cipso_ipv4.c b/net/ipv4/cipso_ipv4.c index 86a2b52aad38..fc839f9148ec 100644 --- a/net/ipv4/cipso_ipv4.c +++ b/net/ipv4/cipso_ipv4.c | |||
@@ -1709,22 +1709,22 @@ void cipso_v4_error(struct sk_buff *skb, int error, u32 gateway) | |||
1709 | } | 1709 | } |
1710 | 1710 | ||
1711 | /** | 1711 | /** |
1712 | * cipso_v4_socket_setattr - Add a CIPSO option to a socket | 1712 | * cipso_v4_sock_setattr - Add a CIPSO option to a socket |
1713 | * @sock: the socket | 1713 | * @sk: the socket |
1714 | * @doi_def: the CIPSO DOI to use | 1714 | * @doi_def: the CIPSO DOI to use |
1715 | * @secattr: the specific security attributes of the socket | 1715 | * @secattr: the specific security attributes of the socket |
1716 | * | 1716 | * |
1717 | * Description: | 1717 | * Description: |
1718 | * Set the CIPSO option on the given socket using the DOI definition and | 1718 | * Set the CIPSO option on the given socket using the DOI definition and |
1719 | * security attributes passed to the function. This function requires | 1719 | * security attributes passed to the function. This function requires |
1720 | * exclusive access to @sock->sk, which means it either needs to be in the | 1720 | * exclusive access to @sk, which means it either needs to be in the |
1721 | * process of being created or locked via lock_sock(sock->sk). Returns zero on | 1721 | * process of being created or locked. Returns zero on success and negative |
1722 | * success and negative values on failure. | 1722 | * values on failure. |
1723 | * | 1723 | * |
1724 | */ | 1724 | */ |
1725 | int cipso_v4_socket_setattr(const struct socket *sock, | 1725 | int cipso_v4_sock_setattr(struct sock *sk, |
1726 | const struct cipso_v4_doi *doi_def, | 1726 | const struct cipso_v4_doi *doi_def, |
1727 | const struct netlbl_lsm_secattr *secattr) | 1727 | const struct netlbl_lsm_secattr *secattr) |
1728 | { | 1728 | { |
1729 | int ret_val = -EPERM; | 1729 | int ret_val = -EPERM; |
1730 | u32 iter; | 1730 | u32 iter; |
@@ -1732,7 +1732,6 @@ int cipso_v4_socket_setattr(const struct socket *sock, | |||
1732 | u32 buf_len = 0; | 1732 | u32 buf_len = 0; |
1733 | u32 opt_len; | 1733 | u32 opt_len; |
1734 | struct ip_options *opt = NULL; | 1734 | struct ip_options *opt = NULL; |
1735 | struct sock *sk; | ||
1736 | struct inet_sock *sk_inet; | 1735 | struct inet_sock *sk_inet; |
1737 | struct inet_connection_sock *sk_conn; | 1736 | struct inet_connection_sock *sk_conn; |
1738 | 1737 | ||
@@ -1740,7 +1739,6 @@ int cipso_v4_socket_setattr(const struct socket *sock, | |||
1740 | * defined yet but it is not a problem as the only users of these | 1739 | * defined yet but it is not a problem as the only users of these |
1741 | * "lite" PF_INET sockets are functions which do an accept() call | 1740 | * "lite" PF_INET sockets are functions which do an accept() call |
1742 | * afterwards so we will label the socket as part of the accept(). */ | 1741 | * afterwards so we will label the socket as part of the accept(). */ |
1743 | sk = sock->sk; | ||
1744 | if (sk == NULL) | 1742 | if (sk == NULL) |
1745 | return 0; | 1743 | return 0; |
1746 | 1744 | ||
@@ -1892,29 +1890,6 @@ int cipso_v4_sock_getattr(struct sock *sk, struct netlbl_lsm_secattr *secattr) | |||
1892 | } | 1890 | } |
1893 | 1891 | ||
1894 | /** | 1892 | /** |
1895 | * cipso_v4_socket_getattr - Get the security attributes from a socket | ||
1896 | * @sock: the socket | ||
1897 | * @secattr: the security attributes | ||
1898 | * | ||
1899 | * Description: | ||
1900 | * Query @sock to see if there is a CIPSO option attached to the socket and if | ||
1901 | * there is return the CIPSO security attributes in @secattr. Returns zero on | ||
1902 | * success and negative values on failure. | ||
1903 | * | ||
1904 | */ | ||
1905 | int cipso_v4_socket_getattr(const struct socket *sock, | ||
1906 | struct netlbl_lsm_secattr *secattr) | ||
1907 | { | ||
1908 | int ret_val; | ||
1909 | |||
1910 | lock_sock(sock->sk); | ||
1911 | ret_val = cipso_v4_sock_getattr(sock->sk, secattr); | ||
1912 | release_sock(sock->sk); | ||
1913 | |||
1914 | return ret_val; | ||
1915 | } | ||
1916 | |||
1917 | /** | ||
1918 | * cipso_v4_skbuff_getattr - Get the security attributes from the CIPSO option | 1893 | * cipso_v4_skbuff_getattr - Get the security attributes from the CIPSO option |
1919 | * @skb: the packet | 1894 | * @skb: the packet |
1920 | * @secattr: the security attributes | 1895 | * @secattr: the security attributes |
diff --git a/net/netlabel/netlabel_kapi.c b/net/netlabel/netlabel_kapi.c index f2535e7f2869..b165712aaa70 100644 --- a/net/netlabel/netlabel_kapi.c +++ b/net/netlabel/netlabel_kapi.c | |||
@@ -246,19 +246,18 @@ int netlbl_secattr_catmap_setrng(struct netlbl_lsm_secattr_catmap *catmap, | |||
246 | 246 | ||
247 | /** | 247 | /** |
248 | * netlbl_socket_setattr - Label a socket using the correct protocol | 248 | * netlbl_socket_setattr - Label a socket using the correct protocol |
249 | * @sock: the socket to label | 249 | * @sk: the socket to label |
250 | * @secattr: the security attributes | 250 | * @secattr: the security attributes |
251 | * | 251 | * |
252 | * Description: | 252 | * Description: |
253 | * Attach the correct label to the given socket using the security attributes | 253 | * Attach the correct label to the given socket using the security attributes |
254 | * specified in @secattr. This function requires exclusive access to | 254 | * specified in @secattr. This function requires exclusive access to @sk, |
255 | * @sock->sk, which means it either needs to be in the process of being | 255 | * which means it either needs to be in the process of being created or locked. |
256 | * created or locked via lock_sock(sock->sk). Returns zero on success, | 256 | * Returns zero on success, negative values on failure. |
257 | * negative values on failure. | ||
258 | * | 257 | * |
259 | */ | 258 | */ |
260 | int netlbl_socket_setattr(const struct socket *sock, | 259 | int netlbl_sock_setattr(struct sock *sk, |
261 | const struct netlbl_lsm_secattr *secattr) | 260 | const struct netlbl_lsm_secattr *secattr) |
262 | { | 261 | { |
263 | int ret_val = -ENOENT; | 262 | int ret_val = -ENOENT; |
264 | struct netlbl_dom_map *dom_entry; | 263 | struct netlbl_dom_map *dom_entry; |
@@ -269,9 +268,9 @@ int netlbl_socket_setattr(const struct socket *sock, | |||
269 | goto socket_setattr_return; | 268 | goto socket_setattr_return; |
270 | switch (dom_entry->type) { | 269 | switch (dom_entry->type) { |
271 | case NETLBL_NLTYPE_CIPSOV4: | 270 | case NETLBL_NLTYPE_CIPSOV4: |
272 | ret_val = cipso_v4_socket_setattr(sock, | 271 | ret_val = cipso_v4_sock_setattr(sk, |
273 | dom_entry->type_def.cipsov4, | 272 | dom_entry->type_def.cipsov4, |
274 | secattr); | 273 | secattr); |
275 | break; | 274 | break; |
276 | case NETLBL_NLTYPE_UNLABELED: | 275 | case NETLBL_NLTYPE_UNLABELED: |
277 | ret_val = 0; | 276 | ret_val = 0; |
@@ -309,30 +308,6 @@ int netlbl_sock_getattr(struct sock *sk, struct netlbl_lsm_secattr *secattr) | |||
309 | } | 308 | } |
310 | 309 | ||
311 | /** | 310 | /** |
312 | * netlbl_socket_getattr - Determine the security attributes of a socket | ||
313 | * @sock: the socket | ||
314 | * @secattr: the security attributes | ||
315 | * | ||
316 | * Description: | ||
317 | * Examines the given socket to see any NetLabel style labeling has been | ||
318 | * applied to the socket, if so it parses the socket label and returns the | ||
319 | * security attributes in @secattr. Returns zero on success, negative values | ||
320 | * on failure. | ||
321 | * | ||
322 | */ | ||
323 | int netlbl_socket_getattr(const struct socket *sock, | ||
324 | struct netlbl_lsm_secattr *secattr) | ||
325 | { | ||
326 | int ret_val; | ||
327 | |||
328 | ret_val = cipso_v4_socket_getattr(sock, secattr); | ||
329 | if (ret_val == 0) | ||
330 | return 0; | ||
331 | |||
332 | return netlbl_unlabel_getattr(secattr); | ||
333 | } | ||
334 | |||
335 | /** | ||
336 | * netlbl_skbuff_getattr - Determine the security attributes of a packet | 311 | * netlbl_skbuff_getattr - Determine the security attributes of a packet |
337 | * @skb: the packet | 312 | * @skb: the packet |
338 | * @secattr: the security attributes | 313 | * @secattr: the security attributes |