fix-tsfpq-20090210
authorJeffrey Altman <jaltman@your-file-system.com>
Tue, 10 Feb 2009 22:42:40 +0000 (22:42 +0000)
committerDerrick Brashear <shadow@dementia.org>
Tue, 10 Feb 2009 22:42:40 +0000 (22:42 +0000)
LICENSE BSD

avoid transferring more than the number of packets in a queue

src/rx/rx_globals.h

index b134cd3..3ea679b 100644 (file)
@@ -299,7 +299,7 @@ void rxi_FlushLocalPacketsTSFPQ(void); /* flush all thread-local packets to glob
     do { \
         int i; \
         struct rx_packet * p; \
-        int tsize = (rx_ts_info_p)->_FPQ.len - rx_TSFPQLocalMax + 3 *  rx_TSFPQGlobSize; \
+        int tsize = MIN((rx_ts_info_p)->_FPQ.len, (rx_ts_info_p)->_FPQ.len - rx_TSFPQLocalMax + 3 *  rx_TSFPQGlobSize); \
        if (tsize <= 0) break; \
         for (i=0,p=queue_Last(&((rx_ts_info_p)->_FPQ), rx_packet); \
              i < tsize; i++,p=queue_Prev(p, rx_packet)); \