1
0
mirror of https://github.com/irssi/irssi.git synced 2024-10-27 05:20:20 -04:00

Don't proceed with cmd_msg if there was an error splitting msg

There may be cases (such as if target or server->nick is very long)
where the split_message function returns NULL, indicating an error. To
avoid a potential segfault, we now check to see if splitmsgs is NULL.
This commit is contained in:
Joseph Bisch 2017-10-16 16:21:10 -04:00 committed by ailin-nemui
parent 28d0b8c746
commit 73d7b9d775

View File

@ -404,7 +404,10 @@ static void cmd_msg(const char *data, SERVER_REC *server, WI_ITEM_REC *item)
else
splitmsgs = singlemsg;
while ((m = splitmsgs[n++])) {
/* splitmsgs may be NULL if there was an error */
g_warn_if_fail(splitmsgs != NULL);
while (splitmsgs && (m = splitmsgs[n++])) {
signal_emit("server sendmsg", 4, server, target, m,
GINT_TO_POINTER(target_type));
signal_emit(target_type == SEND_TARGET_CHANNEL ?