From e95fcce0c4e3901347c51016f01128a3c87f75b8 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Mon, 20 Dec 2021 16:55:07 +0100 Subject: lib: Fix flow dealloc after expired FRCT timeout If the timeout is already expired, the wait variable would be negative and return a negative value for the __frcti_dealloc function, thinking that the timeout was not expired causing an unnecessary wait even if all packets are acknowledged. Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- src/lib/frct.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/lib') diff --git a/src/lib/frct.c b/src/lib/frct.c index af21ed4d..61a3fde0 100644 --- a/src/lib/frct.c +++ b/src/lib/frct.c @@ -631,6 +631,7 @@ static time_t __frcti_dealloc(struct frcti * frcti) wait = MAX(frcti->rcv_cr.inact - now.tv_sec + frcti->rcv_cr.act.tv_sec, frcti->snd_cr.inact - now.tv_sec + frcti->snd_cr.act.tv_sec); + wait = MAX(wait, 0); if (frcti->snd_cr.cflags & FRCTFLINGER && before(frcti->snd_cr.lwe, frcti->snd_cr.seqno)) -- cgit v1.2.3