Fix possible crash in chanserv.c:handle_kick()
authorEntrope <entrope@clan-dk.org>
Sun, 29 Feb 2004 21:58:29 +0000 (21:58 +0000)
committerEntrope <entrope@clan-dk.org>
Sun, 29 Feb 2004 21:58:29 +0000 (21:58 +0000)
* Delay looking up translation for CSMSG_USER_PROTECTED until we know
the kicker actually exists (if a server does the KICK, kicker==NULL).
git-archimport-id: srvx@srvx.net--2004-srvx/srvx--devo--1.3--patch-16

src/chanserv.c

index 236e980e2f8e5430354567a7d38addbfd2d0faed..97776c713a57aac14ceaf117fd9c7ae7758ac217 100644 (file)
@@ -5940,15 +5940,16 @@ handle_part(struct userNode *user, struct chanNode *channel, UNUSED_ARG(const ch
 static void
 handle_kick(struct userNode *kicker, struct userNode *victim, struct chanNode *channel)
 {
-    const char *reason = user_find_message(kicker, "CSMSG_USER_PROTECTED");
-
     if(!channel->channel_info || !kicker || IsService(kicker)
        || (kicker == victim) || IsSuspended(channel->channel_info)
        || (kicker->handle_info && kicker->handle_info == victim->handle_info))
         return;
 
     if(protect_user(victim, kicker, channel->channel_info))
+    {
+        const char *reason = user_find_message(kicker, "CSMSG_USER_PROTECTED");
        KickChannelUser(kicker, channel, chanserv, reason);
+    }
 }
 
 static int