diff options
Diffstat (limited to 'src/plugins/irc/irc-server.c')
-rw-r--r-- | src/plugins/irc/irc-server.c | 13 |
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 { |