aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2013-01-14 12:11:24 +0100
committerTobias Brunner <tobias@strongswan.org>2013-01-14 12:14:16 +0100
commit66bb4f63b24e8adcf8c79be2625a8deb56d533ee (patch)
treea0fec2f67e76a2698f55df5ac91f508fcba5c34e /src/libcharon
parentc4a49008e899fdddded5fdac9fbdaf60836ba8ab (diff)
downloadstrongswan-66bb4f63b24e8adcf8c79be2625a8deb56d533ee.tar.bz2
strongswan-66bb4f63b24e8adcf8c79be2625a8deb56d533ee.tar.xz
Properly send IKEv1 packets if no ike_cfg is known yet
This applies for error notifies.
Diffstat (limited to 'src/libcharon')
-rw-r--r--src/libcharon/sa/ikev1/task_manager_v1.c7
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) &&