Page MenuHomeFreeBSD

D57814.diff
No OneTemporary

D57814.diff

diff --git a/sys/netinet/tcp_stacks/sack_filter.c b/sys/netinet/tcp_stacks/sack_filter.c
--- a/sys/netinet/tcp_stacks/sack_filter.c
+++ b/sys/netinet/tcp_stacks/sack_filter.c
@@ -27,6 +27,7 @@
#include <sys/types.h>
#include <sys/queue.h>
#include <sys/socket.h>
+#include <sys/systm.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
@@ -45,6 +46,8 @@
#include <stdlib.h>
#include <limits.h>
#include <getopt.h>
+#include <assert.h>
+#define MPASS(expr) assert(expr)
struct sackblk {
tcp_seq start; /* start seq no. of sack block */
tcp_seq end; /* end seq no. */
@@ -136,6 +139,7 @@
if (SEQ_GEQ(th_ack, sf->sf_blks[i].end)) {
/* This block is consumed */
sf->sf_bits = sack_blk_clr(sf, i);
+ MPASS(sf->sf_used > 0);
sf->sf_used--;
} else if (SEQ_GT(th_ack, sf->sf_blks[i].start)) {
/* Some of it is acked */
@@ -441,6 +445,7 @@
sf->sf_blks[into].end = sf->sf_blks[src].end;
}
sf->sf_bits = sack_blk_clr(sf, src);
+ MPASS(sf->sf_used > 0);
sf->sf_used--;
}
@@ -662,6 +667,7 @@
/* <or> */
/* sf-blk |---------| */
sf->sf_bits = sack_blk_clr(sf, i);
+ MPASS(sf->sf_used > 0);
sf->sf_used--;
}
continue;
@@ -678,6 +684,7 @@
/* <or> */
/* sf-blk |----------| */
sf->sf_bits = sack_blk_clr(sf, i);
+ MPASS(sf->sf_used > 0);
sf->sf_used--;
}
continue;

File Metadata

Mime Type
text/plain
Expires
Wed, Jul 8, 10:17 PM (6 h, 15 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34466105
Default Alt Text
D57814.diff (1 KB)

Event Timeline