File strongswan-4.x.x_dpd_null_state.patch of Package strongswan
diff -urN strongswan-4.2.13/src/pluto/ipsec_doi.c strongswan-4.2.13-patched/src/pluto/ipsec_doi.c
--- strongswan-4.2.13/src/pluto/ipsec_doi.c 2009-03-21 09:41:49.000000000 +0100
+++ strongswan-4.2.13-patched/src/pluto/ipsec_doi.c 2009-03-21 09:50:06.000000000 +0100
@@ -5446,9 +5446,9 @@
time_t tm = now();
u_int32_t seqno;
- if (!IS_ISAKMP_SA_ESTABLISHED(st->st_state))
+ if (!st || !IS_ISAKMP_SA_ESTABLISHED(st->st_state))
{
- loglog(RC_LOG_SERIOUS, "DPD: Received R_U_THERE for unestablished ISKAMP SA");
+ loglog(RC_LOG_SERIOUS, "DPD: Received R_U_THERE for unestablished ISAKMP SA");
return STF_IGNORE;
}
if (n->isan_spisize != COOKIE_SIZE * 2 || pbs_left(pbs) < COOKIE_SIZE * 2)
@@ -5516,10 +5516,10 @@
{
u_int32_t seqno;
- if (!IS_ISAKMP_SA_ESTABLISHED(st->st_state))
+ if (!st || !IS_ISAKMP_SA_ESTABLISHED(st->st_state))
{
loglog(RC_LOG_SERIOUS
- , "DPD: Received R_U_THERE_ACK for unestablished ISKAMP SA");
+ , "DPD: Received R_U_THERE_ACK for unestablished ISAKMP SA");
return STF_FAIL;
}