X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcske%2Fpayload.c;h=eafbd873330404b36fe711a529c9476671b556db;hb=a85353d34a73d044027b7cf30c3b269754405102;hp=9bf2aa862e9346096871103aa27c50fa43c6941d;hpb=3dcbe27ba92dfc7780297829ed6ed7698b7d28c0;p=silc.git diff --git a/lib/silcske/payload.c b/lib/silcske/payload.c index 9bf2aa86..eafbd873 100644 --- a/lib/silcske/payload.c +++ b/lib/silcske/payload.c @@ -265,7 +265,9 @@ SilcSKEStatus silc_ske_payload_ke_decode(SilcSKE ske, goto err; } - if (payload->pk_type == 0) { + if (ske->start_payload && + (payload->pk_type < SILC_SKE_PK_TYPE_SILC || + payload->pk_type > SILC_SKE_PK_TYPE_SPKI)) { status = SILC_SKE_STATUS_BAD_PAYLOAD; goto err; } @@ -304,7 +306,7 @@ SilcSKEStatus silc_ske_payload_ke_decode(SilcSKE ske, } if (tot_len != len2) { - status = SILC_SKE_STATUS_BAD_PAYLOAD; + status = SILC_SKE_STATUS_BAD_PAYLOAD_LENGTH; goto err; }