Fix /rehash memory leaks and realname Kill blocks.
authorMichael Poole <mdpoole@troilus.org>
Sat, 16 Apr 2005 13:17:19 +0000 (13:17 +0000)
committerMichael Poole <mdpoole@troilus.org>
Sat, 16 Apr 2005 13:17:19 +0000 (13:17 +0000)
git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/trunk@1362 c9e4aea6-c8fd-4c43-8297-357d70d61c8c

ChangeLog
ircd/class.c
ircd/ircd_parser.y
ircd/s_conf.c

index 2f772aff8f7f086481f93678ce6f51be0f1c37d3..7d8df5826d1dae7e73c9f37e7f9b1ce748f5992f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2005-04-16  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/class.c (free_class): Free default_umode field.
+
+       * ircd/ircd_parser.y (classblock): Free default_umode field before
+       overwriting it.
+
+       * ircd/s_conf.c (free_conf): Free username, origin_name, hub_limit
+       fields.
+       (find_kill): Realname Kill blocks no longer have $R at the start,
+       so do not skip over the first two characters of the mask.
+
 2005-04-15  Michael Poole <mdpoole@troilus.org>
 
        * doc/example.conf (Operator): Properly qualify plaintext password.
index e0fe644639f230165f2b96b3babee6b54c0575d5..2509f6577be1e7b58fd5f924a2218cf5b263a946 100644 (file)
@@ -77,8 +77,8 @@ void free_class(struct ConnectionClass* p)
   if (p)
   {
     assert(0 == p->valid);
-    if (p->cc_name)
-      MyFree(p->cc_name);
+    MyFree(p->cc_name);
+    MyFree(p->default_umode);
     MyFree(p);
     --connClassAllocCount;
   }
index 4d0692c9dba392cc624eebe8954b678cccc57d61..c132991e376b1a5765f29d641b67dda0f09743d7 100644 (file)
@@ -342,6 +342,7 @@ classblock: CLASS {
     struct ConnectionClass *c_class;
     add_class(name, tping, tconn, maxlinks, sendq);
     c_class = find_class(name);
+    MyFree(c_class->default_umode);
     c_class->default_umode = pass;
     memcpy(&c_class->privs, &privs, sizeof(c_class->privs));
     memcpy(&c_class->privs_dirty, &privs_dirty, sizeof(c_class->privs_dirty));
index 7b198e7531afd6c89159eea02caab6940dd572c2..536087b605dea442f5eea1dbe04c432e656ba7cf 100644 (file)
@@ -150,11 +150,14 @@ void free_conf(struct ConfItem *aconf)
          aconf->address.port));
   if (aconf->dns_pending)
     delete_resolver_queries(aconf);
+  MyFree(aconf->username);
   MyFree(aconf->host);
+  MyFree(aconf->origin_name);
   if (aconf->passwd)
     memset(aconf->passwd, 0, strlen(aconf->passwd));
   MyFree(aconf->passwd);
   MyFree(aconf->name);
+  MyFree(aconf->hub_limit);
   MyFree(aconf);
 #ifdef        DEBUGMODE
   --GlobalConfCount;
@@ -1020,7 +1023,7 @@ int find_kill(struct Client *cptr)
       break;
 
     if (deny->flags & DENY_FLAGS_REALNAME) { /* K: by real name */
-      if (0 == match(deny->hostmask + 2, realname))
+      if (0 == match(deny->hostmask, realname))
        break;
     } else if (deny->flags & DENY_FLAGS_IP) { /* k: by IP */
 #ifdef DEBUGMODE