From 19e800cf236bc8258b9a19a0685dac383f9f82ec Mon Sep 17 00:00:00 2001 From: Valentin Batz Date: Sun, 6 Feb 2005 21:31:58 +0000 Subject: [PATCH] Fixed memory leaks when destroying a channel, when loading nonexisten scripts and in topics, patch by Toby Peterson git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3707 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/core/channels.c | 1 + src/irc/core/channel-events.c | 3 ++- src/perl/perl-core.c | 8 +++++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/core/channels.c b/src/core/channels.c index 08142f8b..79d8f0e7 100644 --- a/src/core/channels.c +++ b/src/core/channels.c @@ -89,6 +89,7 @@ void channel_destroy(CHANNEL_REC *channel) g_free_not_null(channel->key); g_free(channel->mode); g_free(channel->name); + g_free(channel->visible_name); channel->type = 0; g_free(channel); diff --git a/src/irc/core/channel-events.c b/src/irc/core/channel-events.c index f5c54932..9e2c4891 100644 --- a/src/irc/core/channel-events.c +++ b/src/irc/core/channel-events.c @@ -148,7 +148,8 @@ static void channel_change_topic(IRC_SERVER_REC *server, const char *channel, g_free_not_null(chanrec->topic); chanrec->topic = recoded == NULL ? NULL : g_strdup(recoded); } - + g_free(recoded); + g_free_not_null(chanrec->topic_by); chanrec->topic_by = g_strdup(setby); diff --git a/src/perl/perl-core.c b/src/perl/perl-core.c index 7f05314f..5733db14 100644 --- a/src/perl/perl-core.c +++ b/src/perl/perl-core.c @@ -373,11 +373,13 @@ char *perl_script_get_path(const char *name) /* check from SCRIPTDIR */ g_free(path); path = g_strdup_printf(SCRIPTDIR"/%s", file); - if (stat(path, &statbuf) != 0) - path = NULL; + if (stat(path, &statbuf) != 0) { + g_free(path); + path = NULL; + } } g_free(file); - return path; + return path; } /* If core should handle printing script errors */