From f853e7bcc03be4cde89a7f61fb9c243748d558d7 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 15 Aug 2013 15:15:34 +0200 Subject: [PATCH] ikev1: Fix calculation of the number of fragments The old code resulted in too few fragments in some cases. --- src/libcharon/sa/ikev1/task_manager_v1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libcharon/sa/ikev1/task_manager_v1.c b/src/libcharon/sa/ikev1/task_manager_v1.c index bcfbe3e3a1..dfceb54468 100644 --- a/src/libcharon/sa/ikev1/task_manager_v1.c +++ b/src/libcharon/sa/ikev1/task_manager_v1.c @@ -448,7 +448,7 @@ static bool send_packet(private_task_manager_t *this, bool request, { /* reduce size due to non-ESP marker */ frag_size -= 4; } - count = (data.len / (frag_size + 1)) + 1; + count = data.len / frag_size + (data.len % frag_size ? 1 : 0); DBG1(DBG_IKE, "sending IKE message with length of %zu bytes in " "%hhu fragments", data.len, count); -- 2.47.2