aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2013-08-15 15:15:34 +0200
committerTobias Brunner <tobias@strongswan.org>2013-08-15 15:15:34 +0200
commitf853e7bcc03be4cde89a7f61fb9c243748d558d7 (patch)
treed0235d1f4f84a82ea9b282cf47a48892a3c29e16 /src
parentc81a6ff9070220ec97754a1334c384c3ddf5ce92 (diff)
downloadstrongswan-f853e7bcc03be4cde89a7f61fb9c243748d558d7.tar.bz2
strongswan-f853e7bcc03be4cde89a7f61fb9c243748d558d7.tar.xz
ikev1: Fix calculation of the number of fragments
The old code resulted in too few fragments in some cases.
Diffstat (limited to 'src')
-rw-r--r--src/libcharon/sa/ikev1/task_manager_v1.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libcharon/sa/ikev1/task_manager_v1.c b/src/libcharon/sa/ikev1/task_manager_v1.c
index bcfbe3e3a..dfceb5446 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);