- silc_buffer_format(buf,
- SILC_STR_UI_CHAR(0), /* RESERVED field */
- SILC_STR_UI_CHAR(payload->flags),
- SILC_STR_UI_SHORT(payload->len),
- SILC_STR_UI_XNSTRING(payload->cookie,
- payload->cookie_len),
- SILC_STR_UI_SHORT(payload->version_len),
- SILC_STR_UI_XNSTRING(payload->version,
- payload->version_len),
- SILC_STR_UI_SHORT(payload->ke_grp_len),
- SILC_STR_UI_XNSTRING(payload->ke_grp_list,
- payload->ke_grp_len),
- SILC_STR_UI_SHORT(payload->pkcs_alg_len),
- SILC_STR_UI_XNSTRING(payload->pkcs_alg_list,
- payload->pkcs_alg_len),
- SILC_STR_UI_SHORT(payload->enc_alg_len),
- SILC_STR_UI_XNSTRING(payload->enc_alg_list,
- payload->enc_alg_len),
- SILC_STR_UI_SHORT(payload->hash_alg_len),
- SILC_STR_UI_XNSTRING(payload->hash_alg_list,
- payload->hash_alg_len),
- SILC_STR_UI_SHORT(payload->comp_alg_len),
- SILC_STR_UI_XNSTRING(payload->comp_alg_list,
- payload->comp_alg_len),
- SILC_STR_END);
+ ret = silc_buffer_format(buf,
+ SILC_STR_UI_CHAR(0), /* RESERVED field */
+ SILC_STR_UI_CHAR(payload->flags),
+ SILC_STR_UI_SHORT(payload->len),
+ SILC_STR_UI_XNSTRING(payload->cookie,
+ payload->cookie_len),
+ SILC_STR_UI_SHORT(payload->version_len),
+ SILC_STR_UI_XNSTRING(payload->version,
+ payload->version_len),
+ SILC_STR_UI_SHORT(payload->ke_grp_len),
+ SILC_STR_UI_XNSTRING(payload->ke_grp_list,
+ payload->ke_grp_len),
+ SILC_STR_UI_SHORT(payload->pkcs_alg_len),
+ SILC_STR_UI_XNSTRING(payload->pkcs_alg_list,
+ payload->pkcs_alg_len),
+ SILC_STR_UI_SHORT(payload->enc_alg_len),
+ SILC_STR_UI_XNSTRING(payload->enc_alg_list,
+ payload->enc_alg_len),
+ SILC_STR_UI_SHORT(payload->hash_alg_len),
+ SILC_STR_UI_XNSTRING(payload->hash_alg_list,
+ payload->hash_alg_len),
+ SILC_STR_UI_SHORT(payload->comp_alg_len),
+ SILC_STR_UI_XNSTRING(payload->comp_alg_list,
+ payload->comp_alg_len),
+ SILC_STR_END);
+ if (ret == -1) {
+ silc_buffer_free(buf);
+ return SILC_SKE_STATUS_ERROR;
+ }