fix possible crash on user deletion
[srvx.git] / src / hash.c
index c214cffcfee5a346bfe59466779115705b5f8886..a55ad9ba92568bc06f6e3b031953a41bce38f273 100644 (file)
@@ -382,6 +382,7 @@ AddChannel(const char *name, unsigned long time_, const char *modes, char *banli
         strcpy(cNode->name, name);
         banList_init(&cNode->banlist);
         modeList_init(&cNode->members);
+        userList_init(&cNode->invited);
         mod_chanmode(NULL, cNode, argv, nn, MCP_FROM_SERVER);
         dict_insert(channels, cNode->name, cNode);
         cNode->timestamp = time_;
@@ -469,6 +470,7 @@ DelChannel(struct chanNode *channel)
 
     modeList_clean(&channel->members);
     banList_clean(&channel->banlist);
+    userList_clean(&channel->invited);
     free(channel);
 }
 
@@ -663,9 +665,9 @@ ChannelUserKicked(struct userNode* kicker, struct userNode* victim, struct chanN
     unsigned int n;
     struct modeNode *mn;
 
-    if (!victim || !channel || IsService(victim) || !GetUserMode(channel, victim))
+    if (!victim || !channel || !GetUserMode(channel, victim))
         return;
-
+    
     /* Update the kicker's idle time (kicker may be null if it was a server) */
     if (kicker && (mn = GetUserMode(channel, kicker)))
         mn->idle_since = now;