ha: Properly initialize algo variables when installing CHILD_SAs
authorTobias Brunner <tobias@strongswan.org>
Mon, 3 Aug 2015 11:30:11 +0000 (13:30 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 4 Aug 2015 09:23:27 +0000 (11:23 +0200)
If AEAD algorithms are used no integrity algorithm will be received from
the other HA node.  But since AUTH_UNDEFINED is 1024 and not 0 this value
was incorrectly added to the proposal, resulting in a failure during key
derivation.  The variables are now explicitly initialized to 0, as already
was the case for the IKE SAs.

Fixes #1051.

src/libcharon/plugins/ha/ha_dispatcher.c

index 75d5030..afa0993 100644 (file)
@@ -647,7 +647,7 @@ static void process_child_add(private_ha_dispatcher_t *this,
        u_int32_t inbound_spi = 0, outbound_spi = 0;
        u_int16_t inbound_cpi = 0, outbound_cpi = 0;
        u_int8_t mode = MODE_TUNNEL, ipcomp = 0;
-       u_int16_t encr = ENCR_UNDEFINED, integ = AUTH_UNDEFINED, len = 0;
+       u_int16_t encr = 0, integ = 0, len = 0;
        u_int16_t esn = NO_EXT_SEQ_NUMBERS;
        u_int seg_i, seg_o;
        chunk_t nonce_i = chunk_empty, nonce_r = chunk_empty, secret = chunk_empty;