aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_minisocks.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/tcp_minisocks.c')
-rw-r--r--net/ipv4/tcp_minisocks.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
index 96852af43ca7..87accec8d097 100644
--- a/net/ipv4/tcp_minisocks.c
+++ b/net/ipv4/tcp_minisocks.c
@@ -90,13 +90,14 @@ enum tcp_tw_status
90tcp_timewait_state_process(struct inet_timewait_sock *tw, struct sk_buff *skb, 90tcp_timewait_state_process(struct inet_timewait_sock *tw, struct sk_buff *skb,
91 const struct tcphdr *th) 91 const struct tcphdr *th)
92{ 92{
93 struct tcp_timewait_sock *tcptw = tcp_twsk((struct sock *)tw);
94 struct tcp_options_received tmp_opt; 93 struct tcp_options_received tmp_opt;
94 u8 *hash_location;
95 struct tcp_timewait_sock *tcptw = tcp_twsk((struct sock *)tw);
95 int paws_reject = 0; 96 int paws_reject = 0;
96 97
97 if (th->doff > (sizeof(*th) >> 2) && tcptw->tw_ts_recent_stamp) { 98 if (th->doff > (sizeof(*th) >> 2) && tcptw->tw_ts_recent_stamp) {
98 tmp_opt.tstamp_ok = 1; 99 tmp_opt.tstamp_ok = 1;
99 tcp_parse_options(skb, &tmp_opt, 1, NULL); 100 tcp_parse_options(skb, &tmp_opt, &hash_location, 1, NULL);
100 101
101 if (tmp_opt.saw_tstamp) { 102 if (tmp_opt.saw_tstamp) {
102 tmp_opt.ts_recent = tcptw->tw_ts_recent; 103 tmp_opt.ts_recent = tcptw->tw_ts_recent;
@@ -518,15 +519,16 @@ struct sock *tcp_check_req(struct sock *sk, struct sk_buff *skb,
518 struct request_sock *req, 519 struct request_sock *req,
519 struct request_sock **prev) 520 struct request_sock **prev)
520{ 521{
522 struct tcp_options_received tmp_opt;
523 u8 *hash_location;
524 struct sock *child;
521 const struct tcphdr *th = tcp_hdr(skb); 525 const struct tcphdr *th = tcp_hdr(skb);
522 __be32 flg = tcp_flag_word(th) & (TCP_FLAG_RST|TCP_FLAG_SYN|TCP_FLAG_ACK); 526 __be32 flg = tcp_flag_word(th) & (TCP_FLAG_RST|TCP_FLAG_SYN|TCP_FLAG_ACK);
523 int paws_reject = 0; 527 int paws_reject = 0;
524 struct tcp_options_received tmp_opt;
525 struct sock *child;
526 528
527 if ((th->doff > (sizeof(struct tcphdr)>>2)) && (req->ts_recent)) { 529 if ((th->doff > (sizeof(*th) >> 2)) && (req->ts_recent)) {
528 tmp_opt.tstamp_ok = 1; 530 tmp_opt.tstamp_ok = 1;
529 tcp_parse_options(skb, &tmp_opt, 1, NULL); 531 tcp_parse_options(skb, &tmp_opt, &hash_location, 1, NULL);
530 532
531 if (tmp_opt.saw_tstamp) { 533 if (tmp_opt.saw_tstamp) {
532 tmp_opt.ts_recent = req->ts_recent; 534 tmp_opt.ts_recent = req->ts_recent;