summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorValentin Batz <senneth@irssi.org>2005-02-06 21:31:58 +0000
committervb <vb@dbcabf3a-b0e7-0310-adc4-f8d773084564>2005-02-06 21:31:58 +0000
commit19e800cf236bc8258b9a19a0685dac383f9f82ec (patch)
tree87050afe454aaad28956d12b9bd9e179345ff729 /src
parenta5fdd2358f96b766c5f1a358eb185717bf29cbae (diff)
downloadirssi-19e800cf236bc8258b9a19a0685dac383f9f82ec.zip
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
Diffstat (limited to 'src')
-rw-r--r--src/core/channels.c1
-rw-r--r--src/irc/core/channel-events.c3
-rw-r--r--src/perl/perl-core.c8
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 */