summaryrefslogtreecommitdiff
path: root/src/plugins/irc/irc-server.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/irc/irc-server.c')
-rw-r--r--src/plugins/irc/irc-server.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c
index 85a45f9ad..9bab689e4 100644
--- a/src/plugins/irc/irc-server.c
+++ b/src/plugins/irc/irc-server.c
@@ -1888,23 +1888,28 @@ irc_server_msgq_add_msg (struct t_irc_server *server, const char *msg)
void
irc_server_msgq_add_unterminated (struct t_irc_server *server, const char *string)
{
+ char *unterminated_message2;
+
if (!string[0])
return;
if (server->unterminated_message)
{
- server->unterminated_message =
+ unterminated_message2 =
realloc (server->unterminated_message,
(strlen (server->unterminated_message) +
strlen (string) + 1));
- if (!server->unterminated_message)
+ if (!unterminated_message2)
{
weechat_printf (server->buffer,
_("%s%s: not enough memory for received message"),
weechat_prefix ("error"), IRC_PLUGIN_NAME);
+ free (server->unterminated_message);
+ server->unterminated_message = NULL;
+ return;
}
- else
- strcat (server->unterminated_message, string);
+ server->unterminated_message = unterminated_message2;
+ strcat (server->unterminated_message, string);
}
else
{