The check for new packets in the future used a wrong binary operator, which makes the check expression always true and accepting too many packets.
Reported-by: Thomas Jarosch thomas.jarosch@intra2net.com Signed-off-by: Simon Wunderlich siwu@hrz.tu-chemnitz.de --- bitarray.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/bitarray.c b/bitarray.c index 0be9ff3..9bc63b2 100644 --- a/bitarray.c +++ b/bitarray.c @@ -155,7 +155,7 @@ int bit_get_packet(void *priv, unsigned long *seq_bits, /* sequence number is much newer, probably missed a lot of packets */
if ((seq_num_diff >= TQ_LOCAL_WINDOW_SIZE) - || (seq_num_diff < EXPECTED_SEQNO_RANGE)) { + && (seq_num_diff < EXPECTED_SEQNO_RANGE)) { bat_dbg(DBG_BATMAN, bat_priv, "We missed a lot of packets (%i) !\n", seq_num_diff - 1);