silcd: handle SIGNOFF notify for local clients correctly
[silc.git] / apps / silcd / server.c
index 9fb4aaf3acb9e1ff9142fc8341c7b38011921d78..e18c7de0c4674804e4b5d5b0fc2235f2cc223acb 100644 (file)
@@ -2627,6 +2627,8 @@ silc_server_accept_auth_compl(SilcConnAuth connauth, SilcBool success,
   /* Add connection to server->conns so that we know we have connection
      to this peer. */
   sconn = silc_calloc(1, sizeof(*sconn));
+  if (!sconn)
+    goto out;
   sconn->server = server;
   sconn->sock = sock;
   sconn->remote_host = strdup(hostname);
@@ -3020,6 +3022,10 @@ static void silc_server_rekey(SilcServer server, SilcPacketStream sock,
     silc_packet_free(packet);
     return;
   }
+  if (idata->conn_type == SILC_CONN_UNKNOWN) {
+    silc_packet_free(packet);
+    return;
+  }
 
   SILC_LOG_DEBUG(("Executing rekey protocol with %s:%d [%s], sock %p",
                  idata->sconn->remote_host, idata->sconn->remote_port,