diff options
-rw-r--r-- | net/dccp/ipv4.c | 5 | ||||
-rw-r--r-- | net/dccp/ipv6.c | 20 |
2 files changed, 8 insertions, 17 deletions
diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c index 84c05405984e..b56a2fa2694a 100644 --- a/net/dccp/ipv4.c +++ b/net/dccp/ipv4.c | |||
@@ -366,8 +366,7 @@ void dccp_v4_send_check(struct sock *sk, int unused, struct sk_buff *skb) | |||
366 | 366 | ||
367 | EXPORT_SYMBOL_GPL(dccp_v4_send_check); | 367 | EXPORT_SYMBOL_GPL(dccp_v4_send_check); |
368 | 368 | ||
369 | static inline u64 dccp_v4_init_sequence(const struct sock *sk, | 369 | static inline u64 dccp_v4_init_sequence(const struct sk_buff *skb) |
370 | const struct sk_buff *skb) | ||
371 | { | 370 | { |
372 | return secure_dccp_sequence_number(skb->nh.iph->daddr, | 371 | return secure_dccp_sequence_number(skb->nh.iph->daddr, |
373 | skb->nh.iph->saddr, | 372 | skb->nh.iph->saddr, |
@@ -663,7 +662,7 @@ int dccp_v4_conn_request(struct sock *sk, struct sk_buff *skb) | |||
663 | */ | 662 | */ |
664 | dreq = dccp_rsk(req); | 663 | dreq = dccp_rsk(req); |
665 | dreq->dreq_isr = dcb->dccpd_seq; | 664 | dreq->dreq_isr = dcb->dccpd_seq; |
666 | dreq->dreq_iss = dccp_v4_init_sequence(sk, skb); | 665 | dreq->dreq_iss = dccp_v4_init_sequence(skb); |
667 | dreq->dreq_service = service; | 666 | dreq->dreq_service = service; |
668 | 667 | ||
669 | if (dccp_v4_send_response(sk, req, NULL)) | 668 | if (dccp_v4_send_response(sk, req, NULL)) |
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c index 193b946fd039..a08af75ddc9e 100644 --- a/net/dccp/ipv6.c +++ b/net/dccp/ipv6.c | |||
@@ -76,20 +76,12 @@ static inline void dccp_v6_send_check(struct sock *sk, int unused_value, | |||
76 | dh->dccph_checksum = dccp_v6_csum_finish(skb, &np->saddr, &np->daddr); | 76 | dh->dccph_checksum = dccp_v6_csum_finish(skb, &np->saddr, &np->daddr); |
77 | } | 77 | } |
78 | 78 | ||
79 | static __u32 dccp_v6_init_sequence(struct sock *sk, struct sk_buff *skb) | 79 | static inline __u32 dccp_v6_init_sequence(const struct sk_buff *skb) |
80 | { | 80 | { |
81 | const struct dccp_hdr *dh = dccp_hdr(skb); | 81 | return secure_tcpv6_sequence_number(skb->nh.ipv6h->daddr.s6_addr32, |
82 | 82 | skb->nh.ipv6h->saddr.s6_addr32, | |
83 | if (skb->protocol == htons(ETH_P_IPV6)) | 83 | dccp_hdr(skb)->dccph_dport, |
84 | return secure_tcpv6_sequence_number(skb->nh.ipv6h->daddr.s6_addr32, | 84 | dccp_hdr(skb)->dccph_sport ); |
85 | skb->nh.ipv6h->saddr.s6_addr32, | ||
86 | dh->dccph_dport, | ||
87 | dh->dccph_sport); | ||
88 | |||
89 | return secure_dccp_sequence_number(skb->nh.iph->daddr, | ||
90 | skb->nh.iph->saddr, | ||
91 | dh->dccph_dport, | ||
92 | dh->dccph_sport); | ||
93 | } | 85 | } |
94 | 86 | ||
95 | static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, | 87 | static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, |
@@ -491,7 +483,7 @@ static int dccp_v6_conn_request(struct sock *sk, struct sk_buff *skb) | |||
491 | */ | 483 | */ |
492 | dreq = dccp_rsk(req); | 484 | dreq = dccp_rsk(req); |
493 | dreq->dreq_isr = dcb->dccpd_seq; | 485 | dreq->dreq_isr = dcb->dccpd_seq; |
494 | dreq->dreq_iss = dccp_v6_init_sequence(sk, skb); | 486 | dreq->dreq_iss = dccp_v6_init_sequence(skb); |
495 | dreq->dreq_service = service; | 487 | dreq->dreq_service = service; |
496 | 488 | ||
497 | if (dccp_v6_send_response(sk, req, NULL)) | 489 | if (dccp_v6_send_response(sk, req, NULL)) |