]> jfr.im git - solanum.git/blobdiff - ircd/client.c
strcpy: mass-migrate to strlcpy where appropriate
[solanum.git] / ircd / client.c
index bfa00dc27a7fd3f6f37ebb090563eb813bedfcf4..9ec5c6cc759414fa464462a10985daefab82e1a7 100644 (file)
@@ -194,7 +194,9 @@ client_release_connids(struct Client *client_p)
 {
        rb_dlink_node *ptr, *ptr2;
 
-       s_assert(MyConnect(client_p));
+       if (client_p->localClient->connids.head)
+               s_assert(MyConnect(client_p));
+
        if (!MyConnect(client_p))
                return;
 
@@ -245,7 +247,7 @@ make_client(struct Client *from)
        }
 
        SetUnknown(client_p);
-       strcpy(client_p->username, "unknown");
+       rb_strlcpy(client_p->username, "unknown", sizeof(client_p->username));
 
        return client_p;
 }
@@ -1352,10 +1354,18 @@ exit_remote_client(struct Client *client_p, struct Client *source_p, struct Clie
  */
 
 static int
-exit_unknown_client(struct Client *client_p, struct Client *source_p, struct Client *from,
-                 const char *comment)
+exit_unknown_client(struct Client *client_p, /* The local client originating the
+                                              * exit or NULL, if this exit is
+                                              * generated by this server for
+                                              * internal reasons.
+                                              * This will not get any of the
+                                              * generated messages. */
+               struct Client *source_p,     /* Client exiting */
+               struct Client *from,         /* Client firing off this Exit,
+                                              * never NULL! */
+               const char *comment)
 {
-       authd_abort_client(client_p);
+       authd_abort_client(source_p);
        rb_dlinkDelete(&source_p->localClient->tnode, &unknown_list);
 
        if(!IsIOError(source_p))