1) The check for out-of-order sequence numbers only validates that the
sequence received is > the previous sequence received. But this is
invalid if for instance packet 20 is received after packet 10. It
should instead verify packet received == previous packet + 1.
2) The packet dequeue function was using the wrong pointer, which led
to corruption of all packets placed on the queue when they were
dequeued.
The attached patch is the code change for upstream version 1.34. Upstream felt this an important enough issue to make a release just for this patch.
From the upstream announcement of the patch:
The attached fixes two packet reordering bugs:
1) The check for out-of-order sequence numbers only validates that the
sequence received is > the previous sequence received. But this is
invalid if for instance packet 20 is received after packet 10. It
should instead verify packet received == previous packet + 1.
2) The packet dequeue function was using the wrong pointer, which led
to corruption of all packets placed on the queue when they were
dequeued.
The attached patch is the code change for upstream version 1.34. Upstream felt this an important enough issue to make a release just for this patch.
Here is the diff in their CVS:
http:// poptop. cvs.sourceforge .net/poptop/ poptop/ pptpgre. c?r1=1. 8&r2=1. 9&pathrev= HEAD
Here is the patch submission:
http:// sourceforge. net/mailarchive /forum. php?thread_ name=2007041403 3808.GA5212% 40linuxace. com&forum_ name=poptop- server