git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
net
/
ipv4
/
inet_connection_sock.c
diff --git
a/net/ipv4/inet_connection_sock.c
b/net/ipv4/inet_connection_sock.c
index
9a01bb8
..
36886ad
100644
(file)
--- a/
net/ipv4/inet_connection_sock.c
+++ b/
net/ipv4/inet_connection_sock.c
@@
-13,7
+13,6
@@
* 2 of the License, or(at your option) any later version.
*/
* 2 of the License, or(at your option) any later version.
*/
-#include <linux/config.h>
#include <linux/module.h>
#include <linux/jhash.h>
#include <linux/module.h>
#include <linux/jhash.h>
@@
-40,7
+39,6
@@
int sysctl_local_port_range[2] = { 1024, 4999 };
int inet_csk_bind_conflict(const struct sock *sk,
const struct inet_bind_bucket *tb)
{
int inet_csk_bind_conflict(const struct sock *sk,
const struct inet_bind_bucket *tb)
{
- const u32 sk_rcv_saddr = inet_rcv_saddr(sk);
struct sock *sk2;
struct hlist_node *node;
int reuse = sk->sk_reuse;
struct sock *sk2;
struct hlist_node *node;
int reuse = sk->sk_reuse;
@@
-53,9
+51,8
@@
int inet_csk_bind_conflict(const struct sock *sk,
sk->sk_bound_dev_if == sk2->sk_bound_dev_if)) {
if (!reuse || !sk2->sk_reuse ||
sk2->sk_state == TCP_LISTEN) {
sk->sk_bound_dev_if == sk2->sk_bound_dev_if)) {
if (!reuse || !sk2->sk_reuse ||
sk2->sk_state == TCP_LISTEN) {
- const u32 sk2_rcv_saddr = inet_rcv_saddr(sk2);
- if (!sk2_rcv_saddr || !sk_rcv_saddr ||
- sk2_rcv_saddr == sk_rcv_saddr)
+ if (nx_addr_conflict(sk->sk_nx_info,
+ inet_rcv_saddr(sk), sk2))
break;
}
}
break;
}
}
@@
-328,6
+325,7
@@
struct dst_entry* inet_csk_route_req(struct sock *sk,
{ .sport = inet_sk(sk)->sport,
.dport = ireq->rmt_port } } };
{ .sport = inet_sk(sk)->sport,
.dport = ireq->rmt_port } } };
+ security_req_classify_flow(req, &fl);
if (ip_route_output_flow(&rt, &fl, sk, 0)) {
IP_INC_STATS_BH(IPSTATS_MIB_OUTNOROUTES);
return NULL;
if (ip_route_output_flow(&rt, &fl, sk, 0)) {
IP_INC_STATS_BH(IPSTATS_MIB_OUTNOROUTES);
return NULL;
@@
-342,10
+340,10
@@
struct dst_entry* inet_csk_route_req(struct sock *sk,
EXPORT_SYMBOL_GPL(inet_csk_route_req);
EXPORT_SYMBOL_GPL(inet_csk_route_req);
-static inline u32 inet_synq_hash(const
u32 raddr, const u
16 rport,
- const u32 rnd, const u
16
synq_hsize)
+static inline u32 inet_synq_hash(const
__be32 raddr, const __be
16 rport,
+ const u32 rnd, const u
32
synq_hsize)
{
{
- return jhash_2words(
raddr, (
u32)rport, rnd) & (synq_hsize - 1);
+ return jhash_2words(
(__force u32)raddr, (__force
u32)rport, rnd) & (synq_hsize - 1);
}
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
}
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
@@
-356,8
+354,8
@@
static inline u32 inet_synq_hash(const u32 raddr, const u16 rport,
struct request_sock *inet_csk_search_req(const struct sock *sk,
struct request_sock ***prevp,
struct request_sock *inet_csk_search_req(const struct sock *sk,
struct request_sock ***prevp,
- const __
u16 rport, const __u
32 raddr,
- const __
u
32 laddr)
+ const __
be16 rport, const __be
32 raddr,
+ const __
be
32 laddr)
{
const struct inet_connection_sock *icsk = inet_csk(sk);
struct listen_sock *lopt = icsk->icsk_accept_queue.listen_opt;
{
const struct inet_connection_sock *icsk = inet_csk(sk);
struct listen_sock *lopt = icsk->icsk_accept_queue.listen_opt;
@@
-510,6
+508,8
@@
struct sock *inet_csk_clone(struct sock *sk, const struct request_sock *req,
/* Deinitialize accept_queue to trap illegal accesses. */
memset(&newicsk->icsk_accept_queue, 0, sizeof(newicsk->icsk_accept_queue));
/* Deinitialize accept_queue to trap illegal accesses. */
memset(&newicsk->icsk_accept_queue, 0, sizeof(newicsk->icsk_accept_queue));
+
+ security_inet_csk_clone(newsk, req);
}
return newsk;
}
}
return newsk;
}