diff --git a/src/fe-common/irc/dcc/fe-dcc.c b/src/fe-common/irc/dcc/fe-dcc.c index 1a593573..43f8ce32 100644 --- a/src/fe-common/irc/dcc/fe-dcc.c +++ b/src/fe-common/irc/dcc/fe-dcc.c @@ -306,7 +306,7 @@ static void cmd_msg(const char *data) return; dcc = dcc_find_item(DCC_TYPE_CHAT, target+1, NULL); - if (dcc == NULL) { + if (dcc == NULL || dcc->sendbuf == NULL) { printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, IRCTXT_DCC_CHAT_NOT_FOUND, target+1); } else { @@ -349,7 +349,7 @@ static void cmd_action(const char *data, SERVER_REC *server, WI_IRC_REC *item) if (*target == '\0' || *text == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); dcc = dcc_find_item(DCC_TYPE_CHAT, target+1, NULL); - if (dcc == NULL) { + if (dcc == NULL || dcc->sendbuf == NULL) { printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, IRCTXT_DCC_CHAT_NOT_FOUND, target+1); } else { @@ -379,7 +379,7 @@ static void cmd_ctcp(const char *data, SERVER_REC *server) } dcc = dcc_find_item(DCC_TYPE_CHAT, target+1, NULL); - if (dcc == NULL) { + if (dcc == NULL || dcc->sendbuf == NULL) { printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, IRCTXT_DCC_CHAT_NOT_FOUND, target+1); } else { diff --git a/src/irc/dcc/dcc-chat.c b/src/irc/dcc/dcc-chat.c index e8fdd2ad..f1d9daba 100644 --- a/src/irc/dcc/dcc-chat.c +++ b/src/irc/dcc/dcc-chat.c @@ -38,6 +38,7 @@ void dcc_chat_send(DCC_REC *dcc, const char *data) { g_return_if_fail(dcc != NULL); + g_return_if_fail(dcc->sendbuf != NULL); g_return_if_fail(data != NULL); net_sendbuffer_send(dcc->sendbuf, data, strlen(data)); @@ -73,7 +74,8 @@ static void cmd_msg(const char *data) return; dcc = dcc_find_item(DCC_TYPE_CHAT, ++target, NULL); - if (dcc != NULL) dcc_chat_send(dcc, text); + if (dcc != NULL && dcc->sendbuf != NULL) + dcc_chat_send(dcc, text); cmd_params_free(free_arg); signal_stop(); diff --git a/src/irc/dcc/dcc.c b/src/irc/dcc/dcc.c index b2aeddcf..f3f96a20 100644 --- a/src/irc/dcc/dcc.c +++ b/src/irc/dcc/dcc.c @@ -201,7 +201,7 @@ void dcc_ctcp_message(const char *target, IRC_SERVER_REC *server, DCC_REC *chat, { char *str; - if (chat != NULL) { + if (chat != NULL && chat->sendbuf != NULL) { /* send it via open DCC chat */ str = g_strdup_printf("%s\001%s\001", chat->mirc_ctcp ? "" : notice ? "CTCP_REPLY " : "CTCP_MESSAGE ", msg);