diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2012-02-17 11:20:28 +0100 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2012-02-17 11:20:28 +0100 |
commit | 7d4ffc2ebc29ff8e6771722e8fab41cf690711f2 (patch) | |
tree | db68e9978f530619544f66e651fe195369397378 | |
parent | dcf155d79a41a747ae73e51e028c6085f28dc30f (diff) |
Fixing NULL pointer dereference in irc_channel_free(). This seems to happen
for example when the user gets invited to a channel that already exists.
Separately, I should handle invites like that better. Will file a bug for
that.
-rw-r--r-- | irc_channel.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/irc_channel.c b/irc_channel.c index 03fe93e9..7dc9f885 100644 --- a/irc_channel.c +++ b/irc_channel.c @@ -115,9 +115,13 @@ irc_channel_t *irc_channel_get( irc_t *irc, char *id ) int irc_channel_free( irc_channel_t *ic ) { - irc_t *irc = ic->irc; + irc_t *irc; GSList *l; + if( ic == NULL ) + return 0; + irc = ic->irc; + if( ic->flags & IRC_CHANNEL_JOINED ) irc_channel_del_user( ic, irc->user, IRC_CDU_KICK, "Cleaning up channel" ); |