diff -aur ipsec-tools-0.4-orig/src/racoon/isakmp_agg.c ipsec-tools-0.4/src/racoon/isakmp_agg.c --- ipsec-tools-0.4-orig/src/racoon/isakmp_agg.c 2004-03-23 04:50:27.000000000 -0800 +++ ipsec-tools-0.4/src/racoon/isakmp_agg.c 2005-12-03 11:25:10.000000000 -0800 @@ -400,7 +400,11 @@ } /* payload existency check */ - /* XXX to be checked each authentication method. */ + if (iph1->dhpub_p == NULL || iph1->nonce_p == NULL) { + plog(LLV_ERROR, LOCATION, iph1->remote, + "few isakmp message received.\n"); + goto end; + } /* verify identifier */ if (ipsecdoi_checkid1(iph1) != 0) { @@ -755,7 +759,11 @@ } /* payload existency check */ - /* XXX to be checked each authentication method. */ + if (iph1->dhpub_p == NULL || iph1->nonce_p == NULL) { + plog(LLV_ERROR, LOCATION, iph1->remote, + "few isakmp message received.\n"); + goto end; + } /* verify identifier */ if (ipsecdoi_checkid1(iph1) != 0) {