Lines 2455-2461
Link Here
|
2455 |
case TCPS_LAST_ACK: |
2455 |
case TCPS_LAST_ACK: |
2456 |
if (SEQ_GT(th->th_ack, tp->snd_max)) { |
2456 |
if (SEQ_GT(th->th_ack, tp->snd_max)) { |
2457 |
TCPSTAT_INC(tcps_rcvacktoomuch); |
2457 |
TCPSTAT_INC(tcps_rcvacktoomuch); |
2458 |
goto dropafterack; |
2458 |
// This violates RFC 793, which says an unacceptable segment |
|
|
2459 |
// must elicit only an empty acknowledgment segment, but likely |
2460 |
// indicates spoofing or a desynchronized TCP state, sending |
2461 |
// empty acks won't be helpful in either case |
2462 |
goto drop; |
2459 |
} |
2463 |
} |
2460 |
if ((tp->t_flags & TF_SACK_PERMIT) && |
2464 |
if ((tp->t_flags & TF_SACK_PERMIT) && |
2461 |
((to.to_flags & TOF_SACK) || |
2465 |
((to.to_flags & TOF_SACK) || |