Fix potential crash caused by packets with bogus ACK's.
Reported by: Fabien THOMAS <fabient@netasq.com>
This commit is contained in:
parent
4bde2ac539
commit
22dfb9bdb7
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=73998
@ -635,7 +635,7 @@ ng_pptpgre_recv(node_p node, item_p item)
|
||||
struct ng_pptpgre_ackp *const a = &priv->ackp;
|
||||
const u_int32_t ack = ntohl(gre->data[gre->hasSeq]);
|
||||
const int index = ack - priv->recvAck - 1;
|
||||
const long sample = ng_pptpgre_time(node) - a->timeSent[index];
|
||||
long sample;
|
||||
long diff;
|
||||
|
||||
/* Sanity check ack value */
|
||||
@ -648,6 +648,7 @@ ng_pptpgre_recv(node_p node, item_p item)
|
||||
priv->recvAck = ack;
|
||||
|
||||
/* Update adaptive timeout stuff */
|
||||
sample = ng_pptpgre_time(node) - a->timeSent[index];
|
||||
diff = sample - a->rtt;
|
||||
a->rtt += PPTP_ACK_ALPHA(diff);
|
||||
if (diff < 0)
|
||||
|
Loading…
Reference in New Issue
Block a user