diff options
Diffstat (limited to 'src/charon/encoding/payloads/proposal_substructure.c')
-rw-r--r-- | src/charon/encoding/payloads/proposal_substructure.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/charon/encoding/payloads/proposal_substructure.c b/src/charon/encoding/payloads/proposal_substructure.c index f72fbb1c2..e7a4058f2 100644 --- a/src/charon/encoding/payloads/proposal_substructure.c +++ b/src/charon/encoding/payloads/proposal_substructure.c @@ -632,15 +632,11 @@ proposal_substructure_t *proposal_substructure_create_from_proposal(proposal_t * iterator->destroy(iterator); /* take over general infos */ - this->spi_size = proposal->get_protocol(proposal) == PROTO_IKE ? 8 : 4; + this->spi_size = proposal->get_protocol(proposal) == PROTO_IKE ? 0 : 4; this->spi.len = this->spi_size; - this->spi.ptr = malloc(this->spi_size); - if (this->spi_size == 8) - { - *((u_int64_t*)this->spi.ptr) = proposal->get_spi(proposal); - } - else + if (this->spi_size == 4) { + this->spi.ptr = malloc(this->spi_size); *((u_int32_t*)this->spi.ptr) = proposal->get_spi(proposal); } this->proposal_number = 0; |