void silc_ske_payload_start_free(SilcSKEStartPayload *payload)
{
if (payload) {
- if (payload->cookie)
- silc_free(payload->cookie);
- if (payload->version)
- silc_free(payload->version);
- if (payload->ke_grp_list)
- silc_free(payload->ke_grp_list);
- if (payload->pkcs_alg_list)
- silc_free(payload->pkcs_alg_list);
- if (payload->enc_alg_list)
- silc_free(payload->enc_alg_list);
- if (payload->hash_alg_list)
- silc_free(payload->hash_alg_list);
- if (payload->hmac_alg_list)
- silc_free(payload->hmac_alg_list);
- if (payload->comp_alg_list)
- silc_free(payload->comp_alg_list);
+ silc_free(payload->cookie);
+ silc_free(payload->version);
+ silc_free(payload->ke_grp_list);
+ silc_free(payload->pkcs_alg_list);
+ silc_free(payload->enc_alg_list);
+ silc_free(payload->hash_alg_list);
+ silc_free(payload->hmac_alg_list);
+ silc_free(payload->comp_alg_list);
silc_free(payload);
}
}
/* Free rest */
if (ske->prop) {
- if (ske->prop->group)
- silc_free(ske->prop->group);
+ silc_free(ske->prop->group);
if (ske->prop->pkcs)
silc_pkcs_free(ske->prop->pkcs);
if (ske->prop->cipher)
silc_mp_uninit(ske->KEY);
silc_free(ske->KEY);
}
- if (ske->hash)
- silc_free(ske->hash);
+ silc_free(ske->hash);
+ silc_free(ske->callbacks);
silc_free(ske);
}
}
if (ske->callbacks->payload_receive)
(*ske->callbacks->payload_receive)(ske, ske->callbacks->context);
+ silc_ske_payload_start_free(remote_payload);
+
return status;
err: