From: Tobias Brunner Date: Fri, 26 Apr 2013 13:36:42 +0000 (+0200) Subject: Fix crash if the initiator has no suitable proposal available X-Git-Tag: 5.1.0dr1~96 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0adf165c7e4ce14f156f3f2eec2edbef0ea57e0d;p=thirdparty%2Fstrongswan.git Fix crash if the initiator has no suitable proposal available Could be triggered with a typo in the ike or esp options when ! is used. --- diff --git a/src/libcharon/encoding/payloads/sa_payload.c b/src/libcharon/encoding/payloads/sa_payload.c index a588d4e97f..6134120141 100644 --- a/src/libcharon/encoding/payloads/sa_payload.c +++ b/src/libcharon/encoding/payloads/sa_payload.c @@ -560,6 +560,11 @@ sa_payload_t *sa_payload_create_from_proposals_v1(linked_list_t *proposals, this = (private_sa_payload_t*)sa_payload_create(SECURITY_ASSOCIATION_V1); + if (!proposals || !proposals->get_count(proposals)) + { + return &this->public; + } + /* IKEv1 encodes multiple proposals in a single substructure * TODO-IKEv1: Encode ESP+AH proposals in two substructs with same num */ substruct = proposal_substructure_create_from_proposals_v1(proposals,