فهرست منبع

* Fix crash when using too long hub nicks

Bryan Drewery 16 سال پیش
والد
کامیت
bd8b84f985
3فایلهای تغییر یافته به همراه6 افزوده شده و 3 حذف شده
  1. 1 0
      doc/UPDATES
  2. 4 2
      src/chanprog.c
  3. 1 1
      src/userrec.c

+ 1 - 0
doc/UPDATES

@@ -53,6 +53,7 @@
   * Fix restart causing bot to change nick (this was a regression in jupenick)
   * Fix cmd_slowjoin not working on backup bots correctly.
   * Auto disable cookies on ircu(undernet) and Unreal servers as they do not allow unbanning nonexistant bans.
+  * Fix a crash from long hubnicks.
 * Misc changes
   * EFnet server list updates (To update yours: .set -YES servers - | .set -YES servers6 -)
   * Give localhubs credit for adding their child bots in 'whois'.

+ 4 - 2
src/chanprog.c

@@ -385,8 +385,10 @@ bool is_hub(const char* nick) {
   while (p && *p) {
     if ((p2 = strchr(p, ' '))) {
 
-      len = p2 - p;
-      strlcpy(hubbuf, p, len + 1);
+      len = p2 - p + 1;
+      if (len > sizeof(hubbuf))
+        len = sizeof(hubbuf);
+      strlcpy(hubbuf, p, len);
       if (!strncasecmp(nick, hubbuf, HANDLEN))
         return 1;
     }

+ 1 - 1
src/userrec.c

@@ -589,7 +589,7 @@ struct userrec *adduser(struct userrec *bu, char *handle, char *host, char *pass
 
     fr.global = u->flags;
     build_flags(xx, &fr, 0);
-    shareout("n %s%s %s %s %s\n", bot ? "-" : "", handle, host && host[0] ? host : "none", pass, xx);
+    shareout("n %s%s %s %s %s\n", bot ? "-" : "", u->handle, host && host[0] ? host : "none", pass, xx);
   }
   if (bu == NULL)
     bu = u;