From 12c8ace6a14060b8ae400009e475a7722cbd1f6a Mon Sep 17 00:00:00 2001 From: Přemysl Eric Janouch Date: Fri, 16 Oct 2020 17:38:49 +0200 Subject: degesch: clarify handling of unexpected JOINs I got confused about safety. --- degesch.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/degesch.c b/degesch.c index 66dd118..39d1430 100644 --- a/degesch.c +++ b/degesch.c @@ -6569,8 +6569,12 @@ irc_handle_join (struct server *s, const struct irc_message *msg) hard_assert (channel || !buffer); // We've joined a new channel - if (!channel && irc_is_this_us (s, msg->prefix)) + if (!channel) { + // This is weird, ignoring + if (!irc_is_this_us (s, msg->prefix)) + return; + buffer = buffer_new (s->ctx->input); buffer->type = BUFFER_CHANNEL; buffer->name = xstrdup_printf ("%s.%s", s->name, channel_name); @@ -6594,10 +6598,6 @@ irc_handle_join (struct server *s, const struct irc_message *msg) irc_send (s, "MODE %s", channel_name); } - // This is weird, ignoring - if (!channel) - return; - // Add the user to the channel char *nickname = irc_cut_nickname (msg->prefix); irc_channel_link_user (channel, irc_get_or_make_user (s, nickname), ""); -- cgit v1.2.3-70-g09d2