Merge branch 'security' into 'master'

Security

See merge request irssi/irssi!34
This commit is contained in:
Nei 2018-02-13 09:51:22 +00:00
commit b0d9cb33cd
3 changed files with 25 additions and 28 deletions

View file

@ -173,6 +173,7 @@ static void sig_message_public(SERVER_REC *server, const char *msg,
{
CHANNEL_REC *channel;
int own;
g_return_if_fail(nick != NULL);
channel = channel_find(server, target);
if (channel != NULL) {
@ -185,6 +186,7 @@ static void sig_message_join(SERVER_REC *server, const char *channel,
const char *nick, const char *address)
{
CHANNEL_REC *chanrec;
g_return_if_fail(nick != NULL);
chanrec = channel_find(server, channel);
if (chanrec != NULL)

View file

@ -345,16 +345,18 @@ static void cmd_ts(const char *data)
}
typedef struct {
IRC_SERVER_REC *server;
char *server_tag;
char *nick;
} OPER_PASS_REC;
static void cmd_oper_got_pass(const char *password, OPER_PASS_REC *rec)
{
if (*password != '\0')
irc_send_cmdv(rec->server, "OPER %s %s", rec->nick, password);
SERVER_REC *server_rec = server_find_tag(rec->server_tag);
if (*password != '\0' && IS_IRC_SERVER(server_rec))
irc_send_cmdv((IRC_SERVER_REC *) server_rec, "OPER %s %s", rec->nick, password);
g_free(rec->nick);
g_free(rec);
g_free(rec->server_tag);
g_free(rec);
}
static void cmd_oper(const char *data, IRC_SERVER_REC *server)
@ -374,7 +376,7 @@ static void cmd_oper(const char *data, IRC_SERVER_REC *server)
OPER_PASS_REC *rec;
rec = g_new(OPER_PASS_REC, 1);
rec->server = server;
rec->server_tag = g_strdup(server->tag);
rec->nick = g_strdup(*nick != '\0' ? nick : server->nick);
format = format_get_text(MODULE_NAME, NULL, server, NULL,