X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcske%2Fpayload.c;h=9c5451be24b166cb87312be6790d1deddb3a0da4;hb=7f26bf8964b7269f9a9f295afdff1b870ecc68e2;hp=ad45ea8d74a1d14410310a722affb97e80a36506;hpb=705167687caeaa66c371dce7cc88719687337b9e;p=silc.git diff --git a/lib/silcske/payload.c b/lib/silcske/payload.c index ad45ea8d..9c5451be 100644 --- a/lib/silcske/payload.c +++ b/lib/silcske/payload.c @@ -4,7 +4,7 @@ Author: Pekka Riikonen - Copyright (C) 2000 - 2005 Pekka Riikonen + Copyright (C) 2000 - 2014 Pekka Riikonen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -156,6 +156,15 @@ silc_ske_payload_start_decode(SilcSKE ske, goto err; } + if (payload->len != 4 + payload->cookie_len + payload->version_len + + payload->ke_grp_len + payload->pkcs_alg_len + payload->enc_alg_len + + payload->hash_alg_len + payload->hmac_alg_len + payload->comp_alg_len + + (2 * 7)) { + SILC_LOG_ERROR(("Invalid fields in KE Start Payload")); + status = SILC_SKE_STATUS_BAD_PAYLOAD; + goto err; + } + /* Return the payload */ *return_payload = payload;