diff options
author | Diogo Sousa <diogogsousa@gmail.com> | 2013-06-23 21:31:09 +0100 |
---|---|---|
committer | Diogo Sousa <diogogsousa@gmail.com> | 2013-06-28 16:08:03 +0100 |
commit | aef9e3922e6f6557b156ba6c1fc9e2b0a03db316 (patch) | |
tree | 045e1f9fb6bfa0038aa43ffe237b713a0cbabd1d /src | |
parent | ce6fef3d0ab8b70a88eaf83decb5a596a7f0e246 (diff) |
Fixed a few null pointer derefs caused by dummy code that somehow I
forgot about.
Diffstat (limited to 'src')
-rw-r--r-- | src/common/outbound.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/common/outbound.c b/src/common/outbound.c index 5e840769..3709ce96 100644 --- a/src/common/outbound.c +++ b/src/common/outbound.c @@ -2707,7 +2707,6 @@ cmd_msg (struct session *sess, char *tbuf, char *word[], char *word_eol[]) char *nick = word[2]; char *msg = word_eol[3]; struct session *newsess; - char *split_text = NULL; int cmd_length = 13; /* " PRIVMSG ", " ", :, \r, \n */ int offset = 0; @@ -2758,10 +2757,13 @@ cmd_msg (struct session *sess, char *tbuf, char *word[], char *word_eol[]) newsess = find_channel (sess->server, nick); if (newsess) { + message_tags_data no_tags = MESSAGE_TAGS_DATA_INIT; + while ((split_text = split_up_text (sess, msg + offset, cmd_length, split_text))) { inbound_chanmsg (newsess->server, NULL, newsess->channel, - newsess->server->nick, split_text, TRUE, FALSE, 0); + newsess->server->nick, split_text, TRUE, FALSE, + &no_tags); if (*split_text) offset += strlen(split_text); @@ -2769,7 +2771,8 @@ cmd_msg (struct session *sess, char *tbuf, char *word[], char *word_eol[]) g_free(split_text); } inbound_chanmsg (newsess->server, NULL, newsess->channel, - newsess->server->nick, msg + offset, TRUE, FALSE, 0); + newsess->server->nick, msg + offset, TRUE, FALSE, + &no_tags); } else { @@ -3712,8 +3715,11 @@ cmd_wallchan (struct session *sess, char *tbuf, char *word[], sess = list->data; if (sess->type == SESS_CHANNEL) { + message_tags_data no_tags = MESSAGE_TAGS_DATA_INIT; + inbound_chanmsg (sess->server, NULL, sess->channel, - sess->server->nick, word_eol[2], TRUE, FALSE, 0); + sess->server->nick, word_eol[2], TRUE, FALSE, + &no_tags); sess->server->p_message (sess->server, sess->channel, word_eol[2]); } list = list->next; @@ -4357,6 +4363,7 @@ handle_say (session *sess, char *text, int check_spch) char *newcmd = newcmd_static; int len; int newcmdlen = sizeof newcmd_static; + message_tags_data no_tags = MESSAGE_TAGS_DATA_INIT; if (strcmp (sess->channel, "(lastlog)") == 0) { @@ -4409,7 +4416,7 @@ handle_say (session *sess, char *text, int check_spch) if (dcc) { inbound_chanmsg (sess->server, NULL, sess->channel, - sess->server->nick, text, TRUE, FALSE, 0); + sess->server->nick, text, TRUE, FALSE, &no_tags); set_topic (sess, net_ip (dcc->addr), net_ip (dcc->addr)); goto xit; } @@ -4424,7 +4431,7 @@ handle_say (session *sess, char *text, int check_spch) while ((split_text = split_up_text (sess, text + offset, cmd_length, split_text))) { inbound_chanmsg (sess->server, sess, sess->channel, sess->server->nick, - split_text, TRUE, FALSE, 0); + split_text, TRUE, FALSE, &no_tags); sess->server->p_message (sess->server, sess->channel, split_text); if (*split_text) @@ -4434,7 +4441,7 @@ handle_say (session *sess, char *text, int check_spch) } inbound_chanmsg (sess->server, sess, sess->channel, sess->server->nick, - text + offset, TRUE, FALSE, 0); + text + offset, TRUE, FALSE, &no_tags); sess->server->p_message (sess->server, sess->channel, text + offset); } else { |