From: Pekka Riikonen Date: Wed, 3 Apr 2002 10:05:46 +0000 (+0000) Subject: updates. X-Git-Tag: silc.client.0.8.6~4^2~32 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=8473bbeb659dc16b4bad5496b90493bb954cbce3 updates. --- diff --git a/CHANGES b/CHANGES index dfa84daa..7611885c 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,12 @@ Wed Apr 3 09:57:47 CEST 2002 Pekka Riikonen of a socket connection. The affected file is lib/silcutil/silcsockconn.h. + * Added better error logging in rekey protocol. Affected file + silcd/protocol.c. + + * Do not check public key types in SKE during rekey. Affected + file lib/silcske/payload.c. + Tue Apr 2 14:55:06 CEST 2002 Pekka Riikonen * Some client implementations quit network by doing first LEAVE 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; } diff --git a/lib/silcske/silcske.c b/lib/silcske/silcske.c index 56b38eb4..46941045 100644 --- a/lib/silcske/silcske.c +++ b/lib/silcske/silcske.c @@ -1100,6 +1100,9 @@ SilcSKEStatus silc_ske_abort(SilcSKE ske, SilcSKEStatus status) SILC_LOG_DEBUG(("Start")); + if (status > SILC_SKE_STATUS_INVALID_COOKIE) + status = SILC_SKE_STATUS_BAD_PAYLOAD; + packet = silc_buffer_alloc(4); silc_buffer_pull_tail(packet, SILC_BUFFER_END(packet)); silc_buffer_format(packet,