From fcade7ff9110af0b44646c13caf0705b6d22030d Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Mon, 23 Jul 2001 08:19:43 +0000 Subject: [PATCH] updates. --- CHANGES | 9 +++++++++ apps/silcd/server.c | 26 ++++++++++++++------------ lib/silcske/groups.c | 12 ++++++------ 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/CHANGES b/CHANGES index e4cc027b..b2cf8ffd 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,12 @@ +Mon Jul 23 10:12:37 EEST 2001 Pekka Riikonen + + * Fixed a double free in disconnection in the server. Affected + file is silcd/server.c. + + * Fixed the lib/silcske/groups.c to work now also with GMP + MP library. The string conversion did not work when using + specific base and the base is indicated in the string as well. + Sun Jul 22 19:40:30 EEST 2001 Pekka Riikonen * Changed the key material distribution function in case when diff --git a/apps/silcd/server.c b/apps/silcd/server.c index 4265845e..f3d00f16 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -2098,30 +2098,32 @@ SILC_TASK_CALLBACK(silc_server_close_connection_final) void silc_server_close_connection(SilcServer server, SilcSocketConnection sock) { + /* We won't listen for this connection anymore */ + silc_schedule_unset_listen_fd(server->schedule, sock->sock); + + /* Unregister all tasks */ + silc_schedule_task_del_by_fd(server->schedule, sock->sock); + silc_schedule_task_del_by_fd(server->schedule, sock->sock); + + /* Close the actual connection */ + silc_net_close_connection(sock->sock); + server->sockets[sock->sock] = NULL; + /* If sock->user_data is NULL then we'll check for active protocols here since the silc_server_free_sock_user_data has not been called for this connection. */ if (!sock->user_data) { - /* If any protocol is active cancel its execution */ + /* If any protocol is active cancel its execution. It will call + the final callback which will finalize the disconnection. */ if (sock->protocol) { silc_protocol_cancel(sock->protocol, server->schedule); sock->protocol->state = SILC_PROTOCOL_STATE_ERROR; silc_protocol_execute_final(sock->protocol, server->schedule); sock->protocol = NULL; + return; } } - /* We won't listen for this connection anymore */ - silc_schedule_unset_listen_fd(server->schedule, sock->sock); - - /* Unregister all tasks */ - silc_schedule_task_del_by_fd(server->schedule, sock->sock); - silc_schedule_task_del_by_fd(server->schedule, sock->sock); - - /* Close the actual connection */ - silc_net_close_connection(sock->sock); - server->sockets[sock->sock] = NULL; - silc_schedule_task_add(server->schedule, 0, silc_server_close_connection_final, (void *)sock, 0, 1, SILC_TASK_TIMEOUT, diff --git a/lib/silcske/groups.c b/lib/silcske/groups.c index 17a34c91..0c83343d 100644 --- a/lib/silcske/groups.c +++ b/lib/silcske/groups.c @@ -29,25 +29,25 @@ const struct SilcSKEDiffieHellmanGroupDefStruct silc_ske_groups[] = { /* 1024 bits modulus (Mandatory group) */ { 1, "diffie-hellman-group1", - "0x" + "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1" "29024E088A67CC74020BBEA63B139B22514A08798E3404DD" "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245" "E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED" "EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381" "FFFFFFFFFFFFFFFF", - "0x" + "7FFFFFFFFFFFFFFFE487ED5110B4611A62633145C06E0E68" "948127044533E63A0105DF531D89CD9128A5043CC71A026E" "F7CA8CD9E69D218D98158536F92F8A1BA7F09AB6B6A8E122" "F242DABB312F3F637A262174D31BF6B585FFAE5B7A035BF6" "F71C35FDAD44CFD2D74F9208BE258FF324943328F67329C0" "FFFFFFFFFFFFFFFF", - "0x2" }, + "2" }, /* 1536 bits modulus (Optional group) */ { 2, "diffie-hellman-group2", - "0x" + "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1" "29024E088A67CC74020BBEA63B139B22514A08798E3404DD" "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245" @@ -56,7 +56,7 @@ const struct SilcSKEDiffieHellmanGroupDefStruct silc_ske_groups[] = "C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F" "83655D23DCA3AD961C62F356208552BB9ED529077096966D" "670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF", - "0x" + "7FFFFFFFFFFFFFFFE487ED5110B4611A62633145C06E0E68" "948127044533E63A0105DF531D89CD9128A5043CC71A026E" "F7CA8CD9E69D218D98158536F92F8A1BA7F09AB6B6A8E122" @@ -65,7 +65,7 @@ const struct SilcSKEDiffieHellmanGroupDefStruct silc_ske_groups[] = "E1003E5C50B1DF82CC6D241B0E2AE9CD348B1FD47E9267AF" "C1B2AE91EE51D6CB0E3179AB1042A95DCF6A9483B84B4B36" "B3861AA7255E4C0278BA36046511B993FFFFFFFFFFFFFFFF", - "0x2" }, + "2" }, { 0, NULL, NULL, NULL } }; -- 2.24.0