From: Pekka Riikonen Date: Tue, 7 Jan 2003 20:41:20 +0000 (+0000) Subject: Assure ctx->sock isn't accessed after connection is closed. X-Git-Tag: silc.client.0.9.11~5 X-Git-Url: http://git.silcnet.org/gitweb/?a=commitdiff_plain;h=8dde6db3b71f9f5ebb1dc13322b756d47706c591;p=silc.git Assure ctx->sock isn't accessed after connection is closed. --- diff --git a/apps/silcd/server_backup.c b/apps/silcd/server_backup.c index 78634fe2..832ecb3a 100644 --- a/apps/silcd/server_backup.c +++ b/apps/silcd/server_backup.c @@ -1257,6 +1257,8 @@ SILC_TASK_CALLBACK(silc_server_protocol_backup_done) protocol->state == SILC_PROTOCOL_STATE_FAILURE) { server->backup_noswitch = TRUE; server->server_type = SILC_BACKUP_ROUTER; + if (ctx->sock == sock) + ctx->sock = NULL; if (sock->user_data) silc_server_free_sock_user_data(server, sock, NULL); @@ -1300,6 +1302,8 @@ SILC_TASK_CALLBACK(silc_server_protocol_backup_done) protocol->state == SILC_PROTOCOL_STATE_FAILURE) { server->backup_noswitch = TRUE; server->server_type = SILC_BACKUP_ROUTER; + if (ctx->sock == sock) + ctx->sock = NULL; if (sock->user_data) silc_server_free_sock_user_data(server, sock, NULL); @@ -1332,7 +1336,7 @@ SILC_TASK_CALLBACK(silc_server_protocol_backup_done) protocol->state != SILC_PROTOCOL_STATE_FAILURE) SILC_LOG_INFO(("Backup resuming protocol ended successfully")); - if (ctx->sock->protocol) + if (ctx->sock && ctx->sock->protocol) ctx->sock->protocol = NULL; silc_protocol_free(protocol); silc_free(ctx->sessions);