assert(Reason != NULL);
chan = Channel_Search(Name);
- if ((!chan) || (!Get_Cl2Chan(chan, Client))) {
+ if (!chan) {
IRC_WriteStrClient(Client, ERR_NOSUCHCHANNEL_MSG,
Client_ID(Client), Name);
return false;
}
+ if (!Get_Cl2Chan(chan, Client)) {
+ IRC_WriteStrClient(Client, ERR_NOTONCHANNEL_MSG,
+ Client_ID(Client), Name);
+ return false;
+ }
if (!Remove_Client(REMOVE_PART, chan, Client, Origin, Reason, true))
return false;
Log( LOG_DEBUG, "Freed channel structure for \"%s\".", Chan->name );
- /* Invite- und Ban-Lists aufraeumen */
- Lists_Free( &chan->list_bans );
- Lists_Free( &chan->list_invites );
+ array_free(&chan->topic);
+ Lists_Free(&chan->list_bans);
+ Lists_Free(&chan->list_invites);
/* Neu verketten und freigeben */
if( last_chan ) last_chan->next = chan->next;