diff options
author | Sébastien Helleu <flashcode@flashtux.org> | 2014-08-09 19:54:39 +0200 |
---|---|---|
committer | Sébastien Helleu <flashcode@flashtux.org> | 2014-08-09 19:54:39 +0200 |
commit | b78b5575c3eeb3a61d078b1848c4167f65ee3b93 (patch) | |
tree | 6ee23c23ddbbbc20695962d3b467b56d83cbd261 /src | |
parent | 4e43be6d2cfbf396e8fcfe36f09663da7140a03c (diff) | |
download | weechat-b78b5575c3eeb3a61d078b1848c4167f65ee3b93.zip |
irc: fix memory leak in CTCP answer
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/irc/irc-ctcp.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/plugins/irc/irc-ctcp.c b/src/plugins/irc/irc-ctcp.c index 00f849e4b..510d07633 100644 --- a/src/plugins/irc/irc-ctcp.c +++ b/src/plugins/irc/irc-ctcp.c @@ -417,17 +417,23 @@ irc_ctcp_replace_variables (struct t_irc_server *server, const char *format) * Linux 2.6.32-5-amd64 / x86_64 */ buf_uname = (struct utsname *)malloc (sizeof (struct utsname)); - if (buf_uname && (uname (buf_uname) >= 0)) + if (buf_uname) { - snprintf (buf, sizeof (buf), "%s %s / %s", - buf_uname->sysname, buf_uname->release, - buf_uname->machine); + if (uname (buf_uname) >= 0) + { + snprintf (buf, sizeof (buf), "%s %s / %s", + buf_uname->sysname, buf_uname->release, + buf_uname->machine); + temp = weechat_string_replace (res, "$osinfo", buf); + free (res); + if (!temp) + { + free (buf_uname); + return NULL; + } + res = temp; + } free (buf_uname); - temp = weechat_string_replace (res, "$osinfo", buf); - free (res); - if (!temp) - return NULL; - res = temp; } /* |