if (!this->reuse_ikesa && peer_cfg->get_ike_version(peer_cfg) != IKEV1)
{ /* IKE_SA reuse disabled by config (not possible for IKEv1) */
ike_sa = create_new(this, peer_cfg->get_ike_version(peer_cfg), TRUE);
- ike_sa->set_peer_cfg(ike_sa, peer_cfg);
- checkout_new(this, ike_sa);
+ if (ike_sa)
+ {
+ ike_sa->set_peer_cfg(ike_sa, peer_cfg);
+ checkout_new(this, ike_sa);
+ }
charon->bus->set_sa(charon->bus, ike_sa);
goto out;
}
if (!ike_sa)
{
ike_sa = create_new(this, peer_cfg->get_ike_version(peer_cfg), TRUE);
- ike_sa->set_peer_cfg(ike_sa, peer_cfg);
- checkout_new(this, ike_sa);
+ if (ike_sa)
+ {
+ ike_sa->set_peer_cfg(ike_sa, peer_cfg);
+ checkout_new(this, ike_sa);
+ }
}
charon->bus->set_sa(charon->bus, ike_sa);