Merge git://github.com/davem330/net

* git://github.com/davem330/net:
  tcp: fix validation of D-SACK
  tcp: fix build error if !CONFIG_SYN_COOKIES
This commit is contained in:
Linus Torvalds 2011-09-19 07:48:04 -07:00
commit 1f0772fe27
2 changed files with 19 additions and 2 deletions

View File

@ -431,17 +431,34 @@ extern int tcp_disconnect(struct sock *sk, int flags);
extern __u32 syncookie_secret[2][16-4+SHA_DIGEST_WORDS]; extern __u32 syncookie_secret[2][16-4+SHA_DIGEST_WORDS];
extern struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb, extern struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
struct ip_options *opt); struct ip_options *opt);
#ifdef CONFIG_SYN_COOKIES
extern __u32 cookie_v4_init_sequence(struct sock *sk, struct sk_buff *skb, extern __u32 cookie_v4_init_sequence(struct sock *sk, struct sk_buff *skb,
__u16 *mss); __u16 *mss);
#else
static inline __u32 cookie_v4_init_sequence(struct sock *sk,
struct sk_buff *skb,
__u16 *mss)
{
return 0;
}
#endif
extern __u32 cookie_init_timestamp(struct request_sock *req); extern __u32 cookie_init_timestamp(struct request_sock *req);
extern bool cookie_check_timestamp(struct tcp_options_received *opt, bool *); extern bool cookie_check_timestamp(struct tcp_options_received *opt, bool *);
/* From net/ipv6/syncookies.c */ /* From net/ipv6/syncookies.c */
extern struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb); extern struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb);
#ifdef CONFIG_SYN_COOKIES
extern __u32 cookie_v6_init_sequence(struct sock *sk, struct sk_buff *skb, extern __u32 cookie_v6_init_sequence(struct sock *sk, struct sk_buff *skb,
__u16 *mss); __u16 *mss);
#else
static inline __u32 cookie_v6_init_sequence(struct sock *sk,
struct sk_buff *skb,
__u16 *mss)
{
return 0;
}
#endif
/* tcp_output.c */ /* tcp_output.c */
extern void __tcp_push_pending_frames(struct sock *sk, unsigned int cur_mss, extern void __tcp_push_pending_frames(struct sock *sk, unsigned int cur_mss,

View File

@ -1124,7 +1124,7 @@ static int tcp_is_sackblock_valid(struct tcp_sock *tp, int is_dsack,
return 0; return 0;
/* ...Then it's D-SACK, and must reside below snd_una completely */ /* ...Then it's D-SACK, and must reside below snd_una completely */
if (!after(end_seq, tp->snd_una)) if (after(end_seq, tp->snd_una))
return 0; return 0;
if (!before(start_seq, tp->undo_marker)) if (!before(start_seq, tp->undo_marker))