Ver código fonte

* Cleanup dcc.nick/host/simulbot lengths

Bryan Drewery 16 anos atrás
pai
commit
40255aea0c

+ 2 - 2
src/adns.c

@@ -335,8 +335,8 @@ static int get_dns_idx()
           dcc[dns_idx].sock = sock;
           dns_sock = sock;
           sdprintf("dns_sock: %d", dcc[dns_idx].sock);
-          strlcpy(dcc[dns_idx].host, dns_ip, UHOSTLEN);
-          strlcpy(dcc[dns_idx].nick, "(adns)", NICKLEN);
+          strlcpy(dcc[dns_idx].host, dns_ip, sizeof(dcc[dns_idx].host));
+          strlcpy(dcc[dns_idx].nick, "(adns)", sizeof(dcc[dns_idx].nick));
           sdprintf("dns_ip: %s", dns_ip);
           dcc[dns_idx].timeval = now;
           dns_handler.timeout_val = 0;

+ 5 - 5
src/auth.c

@@ -185,7 +185,7 @@ sdprintf(STR("GETIDX: auth: %s, idx: %d"), nick, idx);
       idx = -1;
     else {
       sdprintf(STR("FIRST FOUND: %d"), idx);
-      strlcpy(dcc[idx].simulbot, chname ? chname : nick, NICKLEN);
+      strlcpy(dcc[idx].simulbot, chname ? chname : nick, sizeof(dcc[idx].simulbot));
       strlcpy(dcc[idx].u.chat->con_chan, chname ? chname : "*", 81);
       return 1;
     }
@@ -200,7 +200,7 @@ sdprintf(STR("GETIDX: auth: %s, idx: %d"), nick, idx);
       putlog(LOG_DEBUG, "*", STR("Simul found old idx for %s/%s: (%s!%s)"), nick, chname, nick, host);
       dcc[i].simultime = now;
       idx = i;
-      strlcpy(dcc[idx].simulbot, chname ? chname : nick, NICKLEN);
+      strlcpy(dcc[idx].simulbot, chname ? chname : nick, sizeof(dcc[idx].simulbot));
       strlcpy(dcc[idx].u.chat->con_chan, chname ? chname : "*", 81);
 
       return 1;
@@ -217,11 +217,11 @@ sdprintf(STR("GETIDX: auth: %s, idx: %d"), nick, idx);
     dcc[idx].simul = 0;		/* not -1, so it's cleaned up later */
     dcc[idx].status = STAT_COLOR;
     dcc[idx].u.chat->con_flags = 0;
-    strlcpy(dcc[idx].simulbot, chname ? chname : nick, NICKLEN);
+    strlcpy(dcc[idx].simulbot, chname ? chname : nick, sizeof(dcc[idx].simulbot));
     strlcpy(dcc[idx].u.chat->con_chan, chname ? chname : "*", 81);
     dcc[idx].u.chat->strip_flags = STRIP_ALL;
-    strlcpy(dcc[idx].nick, handle, NICKLEN);
-    strlcpy(dcc[idx].host, host, UHOSTLEN);
+    strlcpy(dcc[idx].nick, handle, sizeof(dcc[idx].nick));
+    strlcpy(dcc[idx].host, host, sizeof(dcc[idx].host));
     dcc[idx].addr = 0L;
     dcc[idx].user = user ? user : get_user_by_handle(userlist, handle);
     return 1;

+ 4 - 4
src/botcmd.c

@@ -906,7 +906,7 @@ static void bot_thisbot(int idx, char *par)
   noshare = 1;
   change_handle(dcc[idx].user, par);
   noshare = 0;
-  strlcpy(dcc[idx].nick, par, NICKLEN);
+  strlcpy(dcc[idx].nick, par, sizeof(dcc[idx].nick));
 }
 
 /* Used to send a direct msg from Tcl on one bot to Tcl on another
@@ -1312,14 +1312,14 @@ static void bot_rsim(char *botnick, char *code, char *msg)
     dcc[idx].simultime = now;
     dcc[idx].simul = ridx;
     dcc[idx].status = status;
-    strlcpy(dcc[idx].simulbot, botnick, NICKLEN);
+    strlcpy(dcc[idx].simulbot, botnick, sizeof(dcc[idx].simulbot));
     dcc[idx].u.chat->con_flags = rconmask;
     struct chat_info dummy;
     strlcpy(dcc[idx].u.chat->con_chan, rconchan, sizeof(dummy.con_chan));
     dcc[idx].u.chat->strip_flags = STRIP_ALL;
-    strlcpy(dcc[idx].nick, nick, NICKLEN);
+    strlcpy(dcc[idx].nick, nick, sizeof(dcc[idx].nick));
     simple_snprintf(buf, sizeof buf, "%s@%s", nick, botnick);
-    strlcpy(dcc[idx].host, buf, UHOSTLEN);
+    strlcpy(dcc[idx].host, buf, sizeof(dcc[idx].host));
     dcc[idx].addr = 0L;
     dcc[idx].user = get_user_by_handle(userlist, nick);
   }

+ 5 - 5
src/botnet.c

@@ -1019,8 +1019,8 @@ int botlink(char *linker, int idx, char *nick)
       dcc[i].timeval = now;
       dcc[i].port = port;
       dcc[i].user = u;
-      strlcpy(dcc[i].nick, nick, NICKLEN);
-      strlcpy(dcc[i].host, address, UHOSTLEN);
+      strlcpy(dcc[i].nick, nick, sizeof(dcc[i].nick));
+      strlcpy(dcc[i].host, address, sizeof(dcc[i].host));
       dcc[i].u.dns->cptr = strdup(linker);
       dcc[i].u.dns->ibuf = idx;
       dcc[i].bot = 1;
@@ -1065,7 +1065,7 @@ static void botlink_dns_callback(int id, void *client_data, const char *host, bd
   }
 
   dcc[i].addr = inet_addr(bd::String(ips[0]).c_str());
-  strlcpy(dcc[i].host, bd::String(ips[0]).c_str(), UHOSTLEN);
+  strlcpy(dcc[i].host, bd::String(ips[0]).c_str(), sizeof(dcc[i].host));
 
   botlink_real(i);
 }
@@ -1182,9 +1182,9 @@ void tandem_relay(int idx, char *nick, register int i)
 
   dcc[i].port = bi->relay_port;
   dcc[i].addr = 0L;
-  strlcpy(dcc[i].nick, nick, NICKLEN);
+  strlcpy(dcc[i].nick, nick, sizeof(dcc[i].nick));
   dcc[i].user = u;
-  strlcpy(dcc[i].host, bi->address, UHOSTLEN);
+  strlcpy(dcc[i].host, bi->address, sizeof(dcc[i].host));
   if (conf.bot->hub) 
     dprintf(idx, "%s %s @ %s:%d ...\n", "Establishing encrypted connection to", nick, bi->address, bi->relay_port);
   dprintf(idx, "(Type *BYE* on a line by itself to abort.)\n");

+ 3 - 3
src/chanprog.c

@@ -612,7 +612,7 @@ void rehash_ip() {
         dcc[idx].port = 0;
         dcc[idx].sock = i;
         dcc[idx].timeval = now;
-        strlcpy(dcc[idx].nick, "(unix_domain)", NICKLEN);
+        strlcpy(dcc[idx].nick, "(unix_domain)", sizeof(dcc[idx].nick));
         putlog(LOG_DEBUG, "*", "Listening on telnet %s", conf.localhub_socket);
       }
     }
@@ -726,8 +726,8 @@ void setup_HQ(int n) {
     dcc[n].u.chat->con_flags = conmask | LOG_ALL;
     dcc[n].u.chat->strip_flags = STRIP_ALL;
     dcc[n].status = STAT_ECHO;
-    strlcpy(dcc[n].nick, STR("HQ"), NICKLEN);
-    strlcpy(dcc[n].host, STR("llama@console"), UHOSTLEN);
+    strlcpy(dcc[n].nick, STR("HQ"), sizeof(dcc[n].nick));
+    strlcpy(dcc[n].host, STR("llama@console"), sizeof(dcc[n].host));
     dcc[n].user = get_user_by_handle(userlist, dcc[n].nick);
     /* Make sure there's an innocuous HQ user if needed */
     if (!dcc[n].user) {

+ 3 - 3
src/cmds.c

@@ -3032,7 +3032,7 @@ static void cmd_su(int idx, char *par)
         dcc[idx].u.chat->su_channel = dcc[idx].u.chat->channel;
 
 	dcc[idx].user = u;
-	strlcpy(dcc[idx].nick, par, NICKLEN);
+	strlcpy(dcc[idx].nick, par, sizeof(dcc[idx].nick));
 	/* Display password prompt and turn off echo (send IAC WILL ECHO). */
 	dprintf(idx, "Enter password for %s%s\n", par,
 		(dcc[idx].status & STAT_TELNET) ? TLN_IAC_C TLN_WILL_C
@@ -3049,7 +3049,7 @@ static void cmd_su(int idx, char *par)
         dcc[idx].u.chat->su_nick = strdup(dcc[idx].nick);
         dcc[idx].u.chat->su_channel = dcc[idx].u.chat->channel;
 	dcc[idx].user = u;
-	strlcpy(dcc[idx].nick, par, NICKLEN);
+	strlcpy(dcc[idx].nick, par, sizeof(dcc[idx].nick));
 	dcc_chatter(idx);
       }
     }
@@ -4413,7 +4413,7 @@ static void cmd_quit(int idx, char *text)
 
 	if (dcc[idx].u.chat->su_nick) {
 		dcc[idx].user = get_user_by_handle(userlist, dcc[idx].u.chat->su_nick);
-		strlcpy(dcc[idx].nick, dcc[idx].u.chat->su_nick, NICKLEN);
+		strlcpy(dcc[idx].nick, dcc[idx].u.chat->su_nick, sizeof(dcc[idx].nick));
                 dcc[idx].u.chat->channel = dcc[idx].u.chat->su_channel;
 		dcc[idx].type = &DCC_CHAT;
 		dprintf(idx, "Returning to real nick %s!\n", dcc[idx].u.chat->su_nick);

+ 18 - 18
src/dcc.c

@@ -638,8 +638,8 @@ dcc_identd_connect(int idx, char *buf, int atr)
   dcc[j].sock = sock;
   dcc[j].port = port;
   dcc[j].addr = dcc[idx].addr;
-  strlcpy(dcc[j].host, dcc[idx].host, UHOSTLEN);
-  strlcpy(dcc[j].nick, "*", NICKLEN);
+  strlcpy(dcc[j].host, dcc[idx].host, sizeof(dcc[j].host));
+  strlcpy(dcc[j].nick, "*", sizeof(dcc[j].nick));
   /* dcc[j].uint.ident_sock = dcc[idx].sock; */
   dcc[j].timeval = now;
 }
@@ -733,7 +733,7 @@ dcc_chat_secpass(int idx, char *buf, int atr)
       if (dcc[idx].status & STAT_TELNET)
         dprintf(idx, TLN_IAC_C TLN_WONT_C TLN_ECHO_C "\n");
       dcc[idx].user = get_user_by_handle(userlist, dcc[idx].u.chat->away);
-      strlcpy(dcc[idx].nick, dcc[idx].u.chat->away, NICKLEN);
+      strlcpy(dcc[idx].nick, dcc[idx].u.chat->away, sizeof(dcc[idx].nick));
       free(dcc[idx].u.chat->away);
       free(dcc[idx].u.chat->su_nick);
       dcc[idx].u.chat->away = NULL;
@@ -1073,7 +1073,7 @@ dcc_chat_pass(int idx, char *buf, int atr)
       if (dcc[idx].status & STAT_TELNET)
         dprintf(idx, TLN_IAC_C TLN_WONT_C TLN_ECHO_C "\n");
       dcc[idx].user = get_user_by_handle(userlist, dcc[idx].u.chat->away);
-      strlcpy(dcc[idx].nick, dcc[idx].u.chat->away, NICKLEN);
+      strlcpy(dcc[idx].nick, dcc[idx].u.chat->away, sizeof(dcc[idx].nick));
       free(dcc[idx].u.chat->away);
       free(dcc[idx].u.chat->su_nick);
       dcc[idx].u.chat->away = NULL;
@@ -1412,7 +1412,7 @@ dcc_telnet(int idx, char *buf, int ii)
     dcc[i].uint.ident_sock = dcc[idx].sock;
     dcc[i].port = 0;
     dcc[i].timeval = now;
-    strlcpy(dcc[i].nick, "*", NICKLEN);
+    strlcpy(dcc[i].nick, "*", sizeof(dcc[i].nick));
     putlog(LOG_BOTS, "*", "Connection over local socket: %s", s);
     dcc_telnet_got_ident(i, x);
     return;
@@ -1449,14 +1449,14 @@ dcc_telnet(int idx, char *buf, int ii)
   dcc[i].addr = ip;
   dcc[i].sock = sock;
   dcc[i].user = get_user_by_host(x);		/* check for matching -telnet!telnet@ip */
-  strlcpy(dcc[i].host, s, UHOSTLEN);
+  strlcpy(dcc[i].host, s, sizeof(dcc[i].host));
 #ifdef USE_IPV6
   if (af_type == AF_INET6)
     strlcpy(dcc[i].host6, s, sizeof(dcc[i].host6));
 #endif /* USE_IPV6 */
   dcc[i].port = port;
   dcc[i].timeval = now;
-  strlcpy(dcc[i].nick, "*", NICKLEN);
+  strlcpy(dcc[i].nick, "*", sizeof(dcc[i].nick));
 
   dcc[i].u.dns->ibuf = idx;
 
@@ -1489,7 +1489,7 @@ static void dcc_telnet_dns_callback(int id, void *client_data, const char *ip, b
   //Clear the ip (still saved in dcc[i].addr)
   dcc[i].host[0] = 0;
   if (hosts.size()) {
-    strlcpy(dcc[i].host, bd::String(hosts[0]).c_str(), UHOSTLEN);
+    strlcpy(dcc[i].host, bd::String(hosts[0]).c_str(), sizeof(dcc[i].host));
 
     //Check forward
     int dns_id = egg_dns_lookup(bd::String(hosts[0]).c_str(), 20, dcc_telnet_dns_forward_callback, (void *) (long) i);
@@ -1526,7 +1526,7 @@ static void dcc_telnet_dns_forward_callback(int id, void *client_data, const cha
   // If the forward did not match, replace the saved host with the ip
   if (!(ips.size() && !strcmp(bd::String(ips[0]).c_str(), iptostr(htonl(dcc[i].addr))))) {
     forward_matched = false;
-    strlcpy(dcc[i].host, iptostr(htonl(dcc[i].addr)), UHOSTLEN);
+    strlcpy(dcc[i].host, iptostr(htonl(dcc[i].addr)), sizeof(dcc[i].host));
   }
 
   if (forward_matched) {
@@ -1569,14 +1569,14 @@ static void dcc_telnet_dns_forward_callback(int id, void *client_data, const cha
 
   if (sock < 0) {
     if (sock == -2)
-      strlcpy(s, "DNS lookup failed for ident", UHOSTLEN);
+      strlcpy(s, "DNS lookup failed for ident", sizeof(s));
     else
-      strlcpy(s, strerror(errno), UHOSTLEN);
+      strlcpy(s, strerror(errno), sizeof(s));
   } else {
     j = new_dcc(&DCC_IDENT, 0);
     if (j < 0) {
       killsock(sock);
-      strlcpy(s, "No Free DCC's", UHOSTLEN);
+      strlcpy(s, "No Free DCC's", sizeof(s));
     }
   }
   if (s[0]) {
@@ -1588,8 +1588,8 @@ static void dcc_telnet_dns_forward_callback(int id, void *client_data, const cha
   dcc[j].sock = sock;
   dcc[j].port = 113;
   dcc[j].addr = dcc[i].addr;
-  strlcpy(dcc[j].host, dcc[i].host, UHOSTLEN);
-  strlcpy(dcc[j].nick, "*", NICKLEN);
+  strlcpy(dcc[j].host, dcc[i].host, sizeof(dcc[j].host));
+  strlcpy(dcc[j].nick, "*", sizeof(dcc[j].nick));
   dcc[j].uint.ident_sock = dcc[i].sock;
   dcc[j].user = dcc[i].user;
   dcc[j].timeval = now;
@@ -1716,7 +1716,7 @@ dcc_telnet_id(int idx, char *buf, int atr)
     dcc[idx].encrypt = 1;
   }
 
-  nick[HANDLEN] = 0;
+  nick[HANDLEN] = 0; // Trim to handle length before looking up user.
 
   dcc[idx].user = get_user_by_handle(userlist, nick);
 
@@ -1761,7 +1761,7 @@ dcc_telnet_id(int idx, char *buf, int atr)
     return;
   }
   correct_handle(nick);
-  strlcpy(dcc[idx].nick, nick, NICKLEN);
+  strlcpy(dcc[idx].nick, nick, sizeof(dcc[idx].nick));
   if (!strcmp(dcc[idx].host, "UNKNOWN@localhost"))
     simple_snprintf(dcc[idx].host, sizeof(dcc[idx].host), "%s@localhost", nick);
   if (dcc[idx].user->bot) {
@@ -2061,7 +2061,7 @@ dcc_telnet_got_ident(int i, char *host)
     return;
   }
 
-  strlcpy(dcc[i].host, host, UHOSTLEN);
+  strlcpy(dcc[i].host, host, sizeof(dcc[i].host));
 
   bool unix_domain = 0;
   if (!strcmp(host, "UNKNOWN@localhost"))
@@ -2128,7 +2128,7 @@ dcc_telnet_got_ident(int i, char *host)
     dcc[i].status |= STAT_UNIXDOMAIN;
 
   /* Copy acceptable-nick/host mask */
-  strlcpy(dcc[i].nick, dcc[idx].host, HANDLEN);
+  strlcpy(dcc[i].nick, dcc[idx].host, sizeof(dcc[i].nick));
   dcc[i].timeval = now;
 
   dcc[i].u.other = NULL;

+ 9 - 9
src/dccutil.c

@@ -497,9 +497,9 @@ dcc_read(bd::Stream& stream)
       if (type == STR("port"))
         dcc[idx].port = atoi(buf.c_str());
       if (type == STR("nick"))
-        strlcpy(dcc[idx].nick, buf.c_str(), NICKLEN);
+        strlcpy(dcc[idx].nick, buf.c_str(), sizeof(dcc[idx].nick));
       if (type == STR("host"))
-        strlcpy(dcc[idx].host, buf.c_str(), UHOSTLEN);
+        strlcpy(dcc[idx].host, buf.c_str(), sizeof(dcc[idx].host));
     }
   }
   return -1;
@@ -806,7 +806,7 @@ do_boot(int idx, const char *by, const char *reason)
 
   if (dcc[idx].u.chat->su_nick) {
     dcc[idx].user = get_user_by_handle(userlist, dcc[idx].u.chat->su_nick);
-    strlcpy(dcc[idx].nick, dcc[idx].u.chat->su_nick, NICKLEN);
+    strlcpy(dcc[idx].nick, dcc[idx].u.chat->su_nick, sizeof(dcc[idx].nick));
     dcc[idx].type = &DCC_CHAT;
     dprintf(idx, "Returning to real nick %s!\n", dcc[idx].u.chat->su_nick);
     free(dcc[idx].u.chat->su_nick);
@@ -893,8 +893,8 @@ listen_all(port_t lport, bool off)
         dcc[idx].port = port;
         dcc[idx].sock = i6;
         dcc[idx].timeval = now;
-        strlcpy(dcc[idx].nick, "(telnet6)", NICKLEN);
-        strlcpy(dcc[idx].host, "*", UHOSTLEN);
+        strlcpy(dcc[idx].nick, "(telnet6)", sizeof(dcc[idx].nick));
+        strlcpy(dcc[idx].host, "*",  sizeof(dcc[idx].host));
         putlog(LOG_DEBUG, "*", "Listening on IPv6 at telnet port %d", port);
       }
       i = open_listen_by_af(&port, AF_INET);
@@ -914,8 +914,8 @@ listen_all(port_t lport, bool off)
         dcc[idx].port = port;
         dcc[idx].sock = i;
         dcc[idx].timeval = now;
-        strlcpy(dcc[idx].nick, "(telnet)", NICKLEN);
-        strlcpy(dcc[idx].host, "*", UHOSTLEN);
+        strlcpy(dcc[idx].nick, "(telnet)", sizeof(dcc[idx].nick));
+        strlcpy(dcc[idx].host, "*", sizeof(dcc[idx].host));
         putlog(LOG_DEBUG, "*", "Listening on IPv4 at telnet port %d", port);
       }
 #ifdef USE_IPV6
@@ -972,8 +972,8 @@ identd_open(const char *sourceIp, const char *destIp, int identd)
       dcc[idx].port = port;
       dcc[idx].sock = i;
       dcc[idx].timeval = now;
-      strlcpy(dcc[idx].nick, "(identd)", NICKLEN);
-      strlcpy(dcc[idx].host, "*", UHOSTLEN);
+      strlcpy(dcc[idx].nick, "(identd)", sizeof(dcc[idx].nick));
+      strlcpy(dcc[idx].host, "*", sizeof(dcc[idx].host));
       putlog(LOG_DEBUG, "*", "Identd daemon started.");
       howlong.sec = 15;
       howlong.usec = 0;

+ 2 - 2
src/mod/server.mod/server.c

@@ -923,8 +923,8 @@ static int ctcp_DCC_CHAT(char *nick, char *from, struct userrec *u, char *object
     dcc[i].addr = my_atoul(ip);
     dcc[i].port = atoi(prt);
     dcc[i].sock = -1;
-    strlcpy(dcc[i].nick, u->handle, NICKLEN);
-    strlcpy(dcc[i].host, from, UHOSTLEN);
+    strlcpy(dcc[i].nick, u->handle, sizeof(dcc[i].nick));
+    strlcpy(dcc[i].host, from, sizeof(dcc[i].host));
     dcc[i].timeval = now;
     dcc[i].user = u;
 

+ 3 - 3
src/mod/server.mod/servmsg.c

@@ -1255,7 +1255,7 @@ static void server_activity(int idx, char *msg, int len)
   char *from = NULL, *code = NULL;
 
   if (trying_server) {
-    strlcpy(dcc[idx].nick, "(server)", NICKLEN);
+    strlcpy(dcc[idx].nick, "(server)", sizeof(dcc[idx].nick));
     putlog(LOG_SERV, "*", "Connected to %s", dcc[idx].host);
 
     trying_server = 0;
@@ -1751,8 +1751,8 @@ static void connect_server(void)
     putlog(LOG_SERV, "*", "Trying server %s:%d", botserver, botserverport);
 
     dcc[newidx].port = botserverport;
-    strlcpy(dcc[newidx].nick, "(server)", NICKLEN);
-    strlcpy(dcc[newidx].host, botserver, UHOSTLEN);
+    strlcpy(dcc[newidx].nick, "(server)", sizeof(dcc[newidx].nick));
+    strlcpy(dcc[newidx].host, botserver, sizeof(dcc[newidx].host));
 
     botuserhost[0] = 0;
 

+ 3 - 3
src/mod/share.mod/share.c

@@ -1011,13 +1011,13 @@ share_ufsend(int idx, char *par)
       i = new_dcc(&DCC_FORK_SEND, sizeof(struct xfer_info));
       dcc[i].addr = my_atoul(ip);
       dcc[i].port = atoi(port);
-      strlcpy(dcc[i].nick, "*users", NICKLEN);
+      strlcpy(dcc[i].nick, "*users", sizeof(dcc[i].nick));
       dcc[i].u.xfer->filename = strdup(s);
       dcc[i].u.xfer->origname = dcc[i].u.xfer->filename;
       dcc[i].u.xfer->length = atoi(par);
       dcc[i].u.xfer->f = f;
       dcc[i].sock = sock;
-      strlcpy(dcc[i].host, dcc[idx].nick, UHOSTLEN);
+      strlcpy(dcc[i].host, dcc[idx].nick, sizeof(dcc[i].host));
       dcc[idx].status |= STAT_GETTING;
     }
   }
@@ -1544,7 +1544,7 @@ start_sending_users(int idx)
   } else {
     updatebot(-1, dcc[idx].nick, '+', 0, 0, 0, NULL);
     dcc[idx].status |= STAT_SENDING;
-    strlcpy(dcc[j].host, dcc[idx].nick, UHOSTLEN); /* Store bot's nick */
+    strlcpy(dcc[j].host, dcc[idx].nick, sizeof(dcc[j].host)); /* Store bot's nick */
     dprintf(idx, "s us %lu %d %lu\n", iptolong(getmyip()), dcc[j].port, dcc[j].u.xfer->length);
     /* Start up a tbuf to queue outgoing changes for this bot until the
      * userlist is done transferring.

+ 2 - 2
src/mod/transfer.mod/transfer.c

@@ -857,8 +857,8 @@ static int raw_dcc_resend_send(char *filename, char *nick, char *from, int resen
   dcc[i].sock = zz;
   dcc[i].addr = (in_addr_t) (-559026163);
   dcc[i].port = port;
-  strlcpy(dcc[i].nick, nick, NICKLEN);
-  strlcpy(dcc[i].host, "irc", 4);
+  strlcpy(dcc[i].nick, nick, sizeof(dcc[i].nick));
+  strlcpy(dcc[i].host, "irc", sizeof(dcc[i].host));
   dcc[i].u.xfer->filename = strdup(filename);
   dcc[i].u.xfer->origname = strdup(filename);
   strlcpy(dcc[i].u.xfer->from, from, NICKLEN);

+ 3 - 3
src/mod/update.mod/update.c

@@ -144,13 +144,13 @@ static void update_ufsend(int idx, char *par)
       i = new_dcc(&DCC_FORK_SEND, sizeof(struct xfer_info));
       dcc[i].addr = my_atoul(ip);
       dcc[i].port = atoi(port);
-      strlcpy(dcc[i].nick, "*binary", NICKLEN);
+      strlcpy(dcc[i].nick, "*binary", sizeof(dcc[i].nick));
       dcc[i].u.xfer->filename = strdup(s);
       dcc[i].u.xfer->origname = dcc[i].u.xfer->filename;
       dcc[i].u.xfer->length = atol(par);
       dcc[i].u.xfer->f = f;
       dcc[i].sock = sock;
-      strlcpy(dcc[i].host, dcc[idx].nick, UHOSTLEN);
+      strlcpy(dcc[i].host, dcc[idx].nick, sizeof(dcc[i].host));
 
       dcc[idx].status |= STAT_GETTINGU;
     }
@@ -338,7 +338,7 @@ static void start_sending_binary(int idx, bool streamable)
       bupdating = 0;
     } else {
       dcc[idx].status |= STAT_SENDINGU;
-      strlcpy(dcc[j].host, dcc[idx].nick, UHOSTLEN);		/* Store bot's nick */
+      strlcpy(dcc[j].host, dcc[idx].nick, sizeof(dcc[j].host));		/* Store bot's nick */
       dprintf(idx, "sb us %lu %d %lu\n", iptolong(getmyip()), dcc[j].port, dcc[j].u.xfer->length);
     }
   }