Commit f63cfa10 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'sk-const'



Guillaume Nault says:

====================
net: Mark the sk parameter of routing functions as 'const'.

The sk_getsecid security hook prevents the use of a const sk pointer in
several routing functions. Since this hook should only read sk data,
make its sk argument const (patch 1), then constify the sk parameter of
various routing functions (patches 2-4).

Build-tested with make allmodconfig.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents def3833f dc4c399d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -129,10 +129,10 @@ static void del_chan(struct pppox_sock *sock)
	spin_unlock(&chan_lock);
}

static struct rtable *pptp_route_output(struct pppox_sock *po,
static struct rtable *pptp_route_output(const struct pppox_sock *po,
					struct flowi4 *fl4)
{
	struct sock *sk = &po->sk;
	const struct sock *sk = &po->sk;
	struct net *net;

	net = sock_net(sk);
+4 −6
Original line number Diff line number Diff line
@@ -85,12 +85,10 @@ extern void icmpv6_param_prob_reason(struct sk_buff *skb,

struct flowi6;
struct in6_addr;
extern void				icmpv6_flow_init(struct sock *sk,
							 struct flowi6 *fl6,
							 u8 type,

void icmpv6_flow_init(const struct sock *sk, struct flowi6 *fl6, u8 type,
		      const struct in6_addr *saddr,
							 const struct in6_addr *daddr,
							 int oif);
		      const struct in6_addr *daddr, int oif);

static inline void icmpv6_param_prob(struct sk_buff *skb, u8 code, int pos)
{
+1 −1
Original line number Diff line number Diff line
@@ -316,7 +316,7 @@ LSM_HOOK(int, 0, sk_alloc_security, struct sock *sk, int family, gfp_t priority)
LSM_HOOK(void, LSM_RET_VOID, sk_free_security, struct sock *sk)
LSM_HOOK(void, LSM_RET_VOID, sk_clone_security, const struct sock *sk,
	 struct sock *newsk)
LSM_HOOK(void, LSM_RET_VOID, sk_getsecid, struct sock *sk, u32 *secid)
LSM_HOOK(void, LSM_RET_VOID, sk_getsecid, const struct sock *sk, u32 *secid)
LSM_HOOK(void, LSM_RET_VOID, sock_graft, struct sock *sk, struct socket *parent)
LSM_HOOK(int, 0, inet_conn_request, const struct sock *sk, struct sk_buff *skb,
	 struct request_sock *req)
+3 −2
Original line number Diff line number Diff line
@@ -1439,7 +1439,8 @@ int security_socket_getpeersec_dgram(struct socket *sock, struct sk_buff *skb, u
int security_sk_alloc(struct sock *sk, int family, gfp_t priority);
void security_sk_free(struct sock *sk);
void security_sk_clone(const struct sock *sk, struct sock *newsk);
void security_sk_classify_flow(struct sock *sk, struct flowi_common *flic);
void security_sk_classify_flow(const struct sock *sk,
			       struct flowi_common *flic);
void security_req_classify_flow(const struct request_sock *req,
				struct flowi_common *flic);
void security_sock_graft(struct sock*sk, struct socket *parent);
@@ -1597,7 +1598,7 @@ static inline void security_sk_clone(const struct sock *sk, struct sock *newsk)
{
}

static inline void security_sk_classify_flow(struct sock *sk,
static inline void security_sk_classify_flow(const struct sock *sk,
					     struct flowi_common *flic)
{
}
+3 −3
Original line number Diff line number Diff line
@@ -163,7 +163,7 @@ static inline struct rtable *ip_route_output(struct net *net, __be32 daddr,
}

static inline struct rtable *ip_route_output_ports(struct net *net, struct flowi4 *fl4,
						   struct sock *sk,
						   const struct sock *sk,
						   __be32 daddr, __be32 saddr,
						   __be16 dport, __be16 sport,
						   __u8 proto, __u8 tos, int oif)
@@ -309,7 +309,7 @@ static inline void ip_route_connect_init(struct flowi4 *fl4, __be32 dst,
static inline struct rtable *ip_route_connect(struct flowi4 *fl4, __be32 dst,
					      __be32 src, int oif, u8 protocol,
					      __be16 sport, __be16 dport,
					      struct sock *sk)
					      const struct sock *sk)
{
	struct net *net = sock_net(sk);
	struct rtable *rt;
@@ -330,7 +330,7 @@ static inline struct rtable *ip_route_connect(struct flowi4 *fl4, __be32 dst,
static inline struct rtable *ip_route_newports(struct flowi4 *fl4, struct rtable *rt,
					       __be16 orig_sport, __be16 orig_dport,
					       __be16 sport, __be16 dport,
					       struct sock *sk)
					       const struct sock *sk)
{
	if (sport != orig_sport || dport != orig_dport) {
		fl4->fl4_dport = dport;
Loading