diff options
-rw-r--r-- | src/libcharon/sa/ikev1/task_manager_v1.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libcharon/sa/ikev1/task_manager_v1.c b/src/libcharon/sa/ikev1/task_manager_v1.c index 7d6e7ac91..8a4761d5c 100644 --- a/src/libcharon/sa/ikev1/task_manager_v1.c +++ b/src/libcharon/sa/ikev1/task_manager_v1.c @@ -411,13 +411,16 @@ static bool send_fragment(private_task_manager_t *this, bool request, static bool send_packet(private_task_manager_t *this, bool request, packet_t *packet) { - fragmentation_t fragmentation; + fragmentation_t fragmentation = FRAGMENTATION_NO; ike_cfg_t *ike_cfg; host_t *src, *dst; chunk_t data; ike_cfg = this->ike_sa->get_ike_cfg(this->ike_sa); - fragmentation = ike_cfg->fragmentation(ike_cfg); + if (ike_cfg) + { + fragmentation = ike_cfg->fragmentation(ike_cfg); + } data = packet->get_data(packet); if (data.len > this->frag.size && (fragmentation == FRAGMENTATION_FORCE || (this->ike_sa->supports_extension(this->ike_sa, EXT_IKE_FRAGMENTATION) && |