Hack around cornercase in debug code in stream engine. Works around #140.

remotes/origin/master-1.0.x
Victor Julien 16 years ago
parent 9676273e6d
commit b6a45fd1a4

@ -248,9 +248,15 @@ void PrintList2(TcpSegment *seg)
seg->seq, seg->payload_len, seg, seg->prev, seg->next); seg->seq, seg->payload_len, seg, seg->prev, seg->next);
if (seg->prev != NULL && SEQ_LT(seg->seq,seg->prev->seq)) { if (seg->prev != NULL && SEQ_LT(seg->seq,seg->prev->seq)) {
SCLogDebug("inconsistant list: SEQ_LT(seg->seq,seg->prev->seq)) ==" /* check for SEQ_LT cornercase where a - b is exactly 2147483648,
" TRUE, seg->seq %" PRIu32 ", seg->prev->seq %" PRIu32 "" * which makes the marco return TRUE in both directions. This is
"", seg->seq, seg->prev->seq); * a hack though, we're going to check next how we end up with
* a segment list with seq differences that big */
if (!(SEQ_LT(seg->prev->seq,seg->seq))) {
SCLogDebug("inconsistant list: SEQ_LT(seg->seq,seg->prev->seq)) =="
" TRUE, seg->seq %" PRIu32 ", seg->prev->seq %" PRIu32 ""
"", seg->seq, seg->prev->seq);
}
} }
if (SEQ_LT(seg->seq,next_seq)) { if (SEQ_LT(seg->seq,next_seq)) {
@ -291,11 +297,17 @@ void PrintList(TcpSegment *seg)
seg->seq, seg->payload_len, seg, seg->prev, seg->next); seg->seq, seg->payload_len, seg, seg->prev, seg->next);
if (seg->prev != NULL && SEQ_LT(seg->seq,seg->prev->seq)) { if (seg->prev != NULL && SEQ_LT(seg->seq,seg->prev->seq)) {
SCLogDebug("inconsistant list: SEQ_LT(seg->seq,seg->prev->seq)) == " /* check for SEQ_LT cornercase where a - b is exactly 2147483648,
"TRUE, seg->seq %" PRIu32 ", seg->prev->seq %" PRIu32 "", * which makes the marco return TRUE in both directions. This is
* a hack though, we're going to check next how we end up with
* a segment list with seq differences that big */
if (!(SEQ_LT(seg->prev->seq,seg->seq))) {
SCLogDebug("inconsistant list: SEQ_LT(seg->seq,seg->prev->seq)) == "
"TRUE, seg->seq %" PRIu32 ", seg->prev->seq %" PRIu32 "",
seg->seq, seg->prev->seq); seg->seq, seg->prev->seq);
PrintList2(head_seg); PrintList2(head_seg);
abort(); abort();
}
} }
if (SEQ_LT(seg->seq,next_seq)) { if (SEQ_LT(seg->seq,next_seq)) {

Loading…
Cancel
Save