Improve CTCP notice handling

Cutting off all text after \001 can result in users hiding text
so lets only bother handling it if it is a valid CTCP message
(starting and ending with \001).
This commit is contained in:
Patrick Griffis 2017-10-07 17:31:53 -04:00
parent 07f1fc60da
commit 4188f26ab9
1 changed files with 8 additions and 5 deletions

View File

@ -932,7 +932,7 @@ void
inbound_notice (server *serv, char *to, char *nick, char *msg, char *ip, int id,
const message_tags_data *tags_data)
{
char *po,*ptr=to;
char *ptr = to;
session *sess = 0;
int server_notice = FALSE;
@ -1005,18 +1005,21 @@ inbound_notice (server *serv, char *to, char *nick, char *msg, char *ip, int id,
}
}
if (msg[0] == 1)
if (msg[0] == '\001')
{
size_t len;
msg++;
if (!strncmp (msg, "PING", 4))
{
inbound_ping_reply (sess, msg + 5, nick, tags_data);
return;
}
len = strlen(msg);
if (msg[len - 1] == '\001')
msg[len - 1] = '\000';
}
po = strchr (msg, '\001');
if (po)
po[0] = 0;
if (server_notice)
EMIT_SIGNAL_TIMESTAMP (XP_TE_SERVNOTICE, sess, msg, nick, NULL, NULL, 0,