|
@@ -101,7 +101,8 @@ tcp_timewait_state_process(struct inet_timewait_sock *tw, struct sk_buff *skb,
|
|
|
tcp_parse_options(skb, &tmp_opt, 0, NULL);
|
|
|
|
|
|
if (tmp_opt.saw_tstamp) {
|
|
|
- tmp_opt.rcv_tsecr -= tcptw->tw_ts_offset;
|
|
|
+ if (tmp_opt.rcv_tsecr)
|
|
|
+ tmp_opt.rcv_tsecr -= tcptw->tw_ts_offset;
|
|
|
tmp_opt.ts_recent = tcptw->tw_ts_recent;
|
|
|
tmp_opt.ts_recent_stamp = tcptw->tw_ts_recent_stamp;
|
|
|
paws_reject = tcp_paws_reject(&tmp_opt, th->rst);
|