Commit 41dd9596 authored by Florian Westphal's avatar Florian Westphal Committed by Jakub Kicinski

security: add const qualifier to struct sock in various places

A followup change to tcp_request_sock_op would have to drop the 'const'
qualifier from the 'route_req' function as the
'security_inet_conn_request' call is moved there - and that function
expects a 'struct sock *'.

However, it turns out its also possible to add a const qualifier to
security_inet_conn_request instead.
Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
Acked-by: default avatarJames Morris <jamorris@linux.microsoft.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent d4bff72c
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
struct lsm_network_audit { struct lsm_network_audit {
int netif; int netif;
struct sock *sk; const struct sock *sk;
u16 family; u16 family;
__be16 dport; __be16 dport;
__be16 sport; __be16 sport;
......
...@@ -301,7 +301,7 @@ LSM_HOOK(void, LSM_RET_VOID, sk_clone_security, const struct sock *sk, ...@@ -301,7 +301,7 @@ LSM_HOOK(void, LSM_RET_VOID, sk_clone_security, const struct sock *sk,
struct sock *newsk) struct sock *newsk)
LSM_HOOK(void, LSM_RET_VOID, sk_getsecid, struct sock *sk, u32 *secid) LSM_HOOK(void, LSM_RET_VOID, sk_getsecid, struct sock *sk, u32 *secid)
LSM_HOOK(void, LSM_RET_VOID, sock_graft, struct sock *sk, struct socket *parent) LSM_HOOK(void, LSM_RET_VOID, sock_graft, struct sock *sk, struct socket *parent)
LSM_HOOK(int, 0, inet_conn_request, struct sock *sk, struct sk_buff *skb, LSM_HOOK(int, 0, inet_conn_request, const struct sock *sk, struct sk_buff *skb,
struct request_sock *req) struct request_sock *req)
LSM_HOOK(void, LSM_RET_VOID, inet_csk_clone, struct sock *newsk, LSM_HOOK(void, LSM_RET_VOID, inet_csk_clone, struct sock *newsk,
const struct request_sock *req) const struct request_sock *req)
......
...@@ -1358,7 +1358,7 @@ void security_sk_clone(const struct sock *sk, struct sock *newsk); ...@@ -1358,7 +1358,7 @@ void security_sk_clone(const struct sock *sk, struct sock *newsk);
void security_sk_classify_flow(struct sock *sk, struct flowi *fl); void security_sk_classify_flow(struct sock *sk, struct flowi *fl);
void security_req_classify_flow(const struct request_sock *req, struct flowi *fl); void security_req_classify_flow(const struct request_sock *req, struct flowi *fl);
void security_sock_graft(struct sock*sk, struct socket *parent); void security_sock_graft(struct sock*sk, struct socket *parent);
int security_inet_conn_request(struct sock *sk, int security_inet_conn_request(const struct sock *sk,
struct sk_buff *skb, struct request_sock *req); struct sk_buff *skb, struct request_sock *req);
void security_inet_csk_clone(struct sock *newsk, void security_inet_csk_clone(struct sock *newsk,
const struct request_sock *req); const struct request_sock *req);
...@@ -1519,7 +1519,7 @@ static inline void security_sock_graft(struct sock *sk, struct socket *parent) ...@@ -1519,7 +1519,7 @@ static inline void security_sock_graft(struct sock *sk, struct socket *parent)
{ {
} }
static inline int security_inet_conn_request(struct sock *sk, static inline int security_inet_conn_request(const struct sock *sk,
struct sk_buff *skb, struct request_sock *req) struct sk_buff *skb, struct request_sock *req)
{ {
return 0; return 0;
......
...@@ -107,6 +107,6 @@ int aa_sock_file_perm(struct aa_label *label, const char *op, u32 request, ...@@ -107,6 +107,6 @@ int aa_sock_file_perm(struct aa_label *label, const char *op, u32 request,
struct socket *sock); struct socket *sock);
int apparmor_secmark_check(struct aa_label *label, char *op, u32 request, int apparmor_secmark_check(struct aa_label *label, char *op, u32 request,
u32 secid, struct sock *sk); u32 secid, const struct sock *sk);
#endif /* __AA_NET_H */ #endif /* __AA_NET_H */
...@@ -1147,7 +1147,7 @@ static void apparmor_sock_graft(struct sock *sk, struct socket *parent) ...@@ -1147,7 +1147,7 @@ static void apparmor_sock_graft(struct sock *sk, struct socket *parent)
} }
#ifdef CONFIG_NETWORK_SECMARK #ifdef CONFIG_NETWORK_SECMARK
static int apparmor_inet_conn_request(struct sock *sk, struct sk_buff *skb, static int apparmor_inet_conn_request(const struct sock *sk, struct sk_buff *skb,
struct request_sock *req) struct request_sock *req)
{ {
struct aa_sk_ctx *ctx = SK_CTX(sk); struct aa_sk_ctx *ctx = SK_CTX(sk);
......
...@@ -211,7 +211,7 @@ static int apparmor_secmark_init(struct aa_secmark *secmark) ...@@ -211,7 +211,7 @@ static int apparmor_secmark_init(struct aa_secmark *secmark)
} }
static int aa_secmark_perm(struct aa_profile *profile, u32 request, u32 secid, static int aa_secmark_perm(struct aa_profile *profile, u32 request, u32 secid,
struct common_audit_data *sa, struct sock *sk) struct common_audit_data *sa)
{ {
int i, ret; int i, ret;
struct aa_perms perms = { }; struct aa_perms perms = { };
...@@ -244,13 +244,13 @@ static int aa_secmark_perm(struct aa_profile *profile, u32 request, u32 secid, ...@@ -244,13 +244,13 @@ static int aa_secmark_perm(struct aa_profile *profile, u32 request, u32 secid,
} }
int apparmor_secmark_check(struct aa_label *label, char *op, u32 request, int apparmor_secmark_check(struct aa_label *label, char *op, u32 request,
u32 secid, struct sock *sk) u32 secid, const struct sock *sk)
{ {
struct aa_profile *profile; struct aa_profile *profile;
DEFINE_AUDIT_SK(sa, op, sk); DEFINE_AUDIT_SK(sa, op, sk);
return fn_for_each_confined(label, profile, return fn_for_each_confined(label, profile,
aa_secmark_perm(profile, request, secid, aa_secmark_perm(profile, request, secid,
&sa, sk)); &sa));
} }
#endif #endif
...@@ -183,7 +183,7 @@ int ipv6_skb_to_auditdata(struct sk_buff *skb, ...@@ -183,7 +183,7 @@ int ipv6_skb_to_auditdata(struct sk_buff *skb,
static inline void print_ipv6_addr(struct audit_buffer *ab, static inline void print_ipv6_addr(struct audit_buffer *ab,
struct in6_addr *addr, __be16 port, const struct in6_addr *addr, __be16 port,
char *name1, char *name2) char *name1, char *name2)
{ {
if (!ipv6_addr_any(addr)) if (!ipv6_addr_any(addr))
...@@ -322,7 +322,7 @@ static void dump_common_audit_data(struct audit_buffer *ab, ...@@ -322,7 +322,7 @@ static void dump_common_audit_data(struct audit_buffer *ab,
} }
case LSM_AUDIT_DATA_NET: case LSM_AUDIT_DATA_NET:
if (a->u.net->sk) { if (a->u.net->sk) {
struct sock *sk = a->u.net->sk; const struct sock *sk = a->u.net->sk;
struct unix_sock *u; struct unix_sock *u;
struct unix_address *addr; struct unix_address *addr;
int len = 0; int len = 0;
......
...@@ -2225,7 +2225,7 @@ void security_sock_graft(struct sock *sk, struct socket *parent) ...@@ -2225,7 +2225,7 @@ void security_sock_graft(struct sock *sk, struct socket *parent)
} }
EXPORT_SYMBOL(security_sock_graft); EXPORT_SYMBOL(security_sock_graft);
int security_inet_conn_request(struct sock *sk, int security_inet_conn_request(const struct sock *sk,
struct sk_buff *skb, struct request_sock *req) struct sk_buff *skb, struct request_sock *req)
{ {
return call_int_hook(inet_conn_request, 0, sk, skb, req); return call_int_hook(inet_conn_request, 0, sk, skb, req);
......
...@@ -5355,7 +5355,7 @@ static void selinux_sctp_sk_clone(struct sctp_endpoint *ep, struct sock *sk, ...@@ -5355,7 +5355,7 @@ static void selinux_sctp_sk_clone(struct sctp_endpoint *ep, struct sock *sk,
selinux_netlbl_sctp_sk_clone(sk, newsk); selinux_netlbl_sctp_sk_clone(sk, newsk);
} }
static int selinux_inet_conn_request(struct sock *sk, struct sk_buff *skb, static int selinux_inet_conn_request(const struct sock *sk, struct sk_buff *skb,
struct request_sock *req) struct request_sock *req)
{ {
struct sk_security_struct *sksec = sk->sk_security; struct sk_security_struct *sksec = sk->sk_security;
......
...@@ -3864,7 +3864,7 @@ static inline struct smack_known *smack_from_skb(struct sk_buff *skb) ...@@ -3864,7 +3864,7 @@ static inline struct smack_known *smack_from_skb(struct sk_buff *skb)
* *
* Returns smack_known of the IP options or NULL if that won't work. * Returns smack_known of the IP options or NULL if that won't work.
*/ */
static struct smack_known *smack_from_netlbl(struct sock *sk, u16 family, static struct smack_known *smack_from_netlbl(const struct sock *sk, u16 family,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct netlbl_lsm_secattr secattr; struct netlbl_lsm_secattr secattr;
...@@ -4114,7 +4114,7 @@ static void smack_sock_graft(struct sock *sk, struct socket *parent) ...@@ -4114,7 +4114,7 @@ static void smack_sock_graft(struct sock *sk, struct socket *parent)
* Returns 0 if a task with the packet label could write to * Returns 0 if a task with the packet label could write to
* the socket, otherwise an error code * the socket, otherwise an error code
*/ */
static int smack_inet_conn_request(struct sock *sk, struct sk_buff *skb, static int smack_inet_conn_request(const struct sock *sk, struct sk_buff *skb,
struct request_sock *req) struct request_sock *req)
{ {
u16 family = sk->sk_family; u16 family = sk->sk_family;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment