Pārlūkot izejas kodu

* Port [3154] to 1.2.13
* Fix botnicks becoming lower case after being opped.



svn: 3155

Bryan Drewery 19 gadi atpakaļ
vecāks
revīzija
a4db6ccc0f
2 mainītis faili ar 5 papildinājumiem un 3 dzēšanām
  1. 1 0
      doc/UPDATES
  2. 4 3
      src/mod/irc.mod/irc.c

+ 1 - 0
doc/UPDATES

@@ -14,6 +14,7 @@ Lines prefixed with '-' were disabled before release and are not finished, or ar
 * cmd_[bot]set now accepts wildcards (*) for listing variables. (not for setting)
 * cmd_[bot]set now accepts wildcards (*) for listing variables. (not for setting)
 * Added set var 'usermode' for IRC usermode to set on connect/rehash.
 * Added set var 'usermode' for IRC usermode to set on connect/rehash.
 * Added cmd_umode (+m) to manually set bots' usermodes at will.
 * Added cmd_umode (+m) to manually set bots' usermodes at will.
+* Fix botnicks becoming lower case after being opped.
 
 
 1.2.12 - http://wraith.shatow.net/milestone/1.2.12
 1.2.12 - http://wraith.shatow.net/milestone/1.2.12
 * Clearing a variable via 'set var -' now resets that variable to default settings. (implements #111)
 * Clearing a variable via 'set var -' now resets that variable to default settings. (implements #111)

+ 4 - 3
src/mod/irc.mod/irc.c

@@ -271,7 +271,7 @@ static void cache_invite(struct chanset_t *chan, char *nick, char *host, char *h
 static char *
 static char *
 makecookie(char *chn, char *bnick)
 makecookie(char *chn, char *bnick)
 {
 {
-  char *buf = NULL, randstring[5] = "", ts[11] = "", *chname = NULL, *hash = NULL, tohash[50] = "";
+  char *buf = NULL, randstring[5] = "", ts[11] = "", *chname = NULL, *hash = NULL, tohash[50] = "", nick[NICMAX + 1] = "";
 
 
   chname = strdup(chn);
   chname = strdup(chn);
 
 
@@ -284,8 +284,9 @@ makecookie(char *chn, char *bnick)
   if (strlen(chname) > 2)
   if (strlen(chname) > 2)
     chname[3] = 0;
     chname[3] = 0;
   strtoupper(chname);
   strtoupper(chname);
-  strtolower(bnick);
-  simple_sprintf(tohash, "%c%s%s%s%s%c", settings.salt2[0], bnick, chname, &ts[4], randstring, settings.salt2[15]);
+  strlcpy(nick, bnick, sizeof(nick));
+  strtolower(nick);
+  simple_sprintf(tohash, "%c%s%s%s%s%c", settings.salt2[0], nick, chname, &ts[4], randstring, settings.salt2[15]);
   hash = MD5(tohash);
   hash = MD5(tohash);
   buf = (char *) my_calloc(1, 20);
   buf = (char *) my_calloc(1, 20);
   simple_sprintf(buf, "%c%c%c!%s@%s", hash[8], hash[16], hash[18], randstring, ts);
   simple_sprintf(buf, "%c%c%c!%s@%s", hash[8], hash[16], hash[18], randstring, ts);