Check for disconnected socket in QUIT callback.
authorPekka Riikonen <priikone@silcnet.org>
Tue, 21 Oct 2003 11:36:34 +0000 (11:36 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Tue, 21 Oct 2003 11:36:34 +0000 (11:36 +0000)
CHANGES
apps/silcd/command.c

diff --git a/CHANGES b/CHANGES
index 711a8a047c230645ccb0adf9997be75151e6e31d..29c620ceab6e686574dec0c089e1eaf1d77e58ae 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,8 @@
+Tue Oct 21 13:35:57 CEST 2003  Pekka Riikonen <priikone@silcnet.org>
+
+       * Check for disconnected socket in QUIT callback.  Affected
+         file silcd/command.c.
+
 Thu Oct 21 09:43:17 CEST 2003  Jochen Eisinger <jochen@penguin-breeder.org>
 
         * Modified the MIME parsing to allow \n and \r\n as delimiters.
index 0d594b9d9891049af8823d33408054cd9316dc73..b0af7ec8d094c9e1681849d39d01e348dd3a49bc 100644 (file)
@@ -1332,11 +1332,13 @@ SILC_TASK_CALLBACK(silc_server_command_quit_cb)
   SilcServer server = app_context;
   QuitInternal q = (QuitInternal)context;
 
-  /* Free all client specific data, such as client entry and entires
-     on channels this client may be on. */
-  silc_server_free_client_data(server, q->sock, q->sock->user_data,
-                              TRUE, q->signoff);
-  q->sock->user_data = NULL;
+  if (q->sock->user_data) {
+    /* Free all client specific data, such as client entry and entires
+       on channels this client may be on. */
+    silc_server_free_client_data(server, q->sock, q->sock->user_data,
+                                TRUE, q->signoff);
+    q->sock->user_data = NULL;
+  }
 
   /* Close the connection on our side */
   silc_server_close_connection(server, q->sock);