From dc0e9d3b61c1adab40d23e48486f857f14bdcbd8 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Thu, 26 Feb 2009 08:06:02 +0200 Subject: [PATCH] SKE: When failure is received mark SKE always failed Mark the SKE failed even if we don't receive error from remote. Fixes crash where the callback is called back to application without valid key material and without error status. --- lib/silcske/silcske.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/silcske/silcske.c b/lib/silcske/silcske.c index 5cb7c91d..df641f61 100644 --- a/lib/silcske/silcske.c +++ b/lib/silcske/silcske.c @@ -1809,10 +1809,10 @@ SILC_FSM_STATE(silc_ske_st_initiator_failure) if (ske->packet && silc_buffer_len(&ske->packet->buffer) == 4) { SILC_GET32_MSB(error, ske->packet->buffer.data); - ske->status = error; silc_packet_free(ske->packet); ske->packet = NULL; } + ske->status = error; SILC_LOG_DEBUG(("Error %s (%d) received during key exchange", silc_ske_map_status(ske->status), ske->status)); @@ -2383,10 +2383,10 @@ SILC_FSM_STATE(silc_ske_st_responder_failure) if (ske->packet && silc_buffer_len(&ske->packet->buffer) == 4) { SILC_GET32_MSB(error, ske->packet->buffer.data); - ske->status = error; silc_packet_free(ske->packet); ske->packet = NULL; } + ske->status = error; silc_packet_stream_unlink(ske->stream, &silc_ske_stream_cbs, ske); silc_schedule_task_del_by_context(ske->schedule, ske); -- 2.24.0