mirror of
https://github.com/irssi/irssi.git
synced 2024-12-04 14:46:39 -05:00
Fixed a memory leak and a crash when notifylist_check_join() was called with NULL realname.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2185 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
parent
aa3513eaaf
commit
84abc35a81
@ -176,7 +176,7 @@ static void whois_send(IRC_SERVER_REC *server, const char *nicks,
|
|||||||
for (p = str+strlen(nicks)+1; *p != '\0'; p++)
|
for (p = str+strlen(nicks)+1; *p != '\0'; p++)
|
||||||
if (*p == ',') *p = ' ';
|
if (*p == ',') *p = ' ';
|
||||||
|
|
||||||
server_redirect_event(server, "whois", 1, str, FALSE,
|
server_redirect_event(server, "whois", 1, str, TRUE,
|
||||||
"notifylist event whois end",
|
"notifylist event whois end",
|
||||||
"event 318", "notifylist event whois end",
|
"event 318", "notifylist event whois end",
|
||||||
"event 311", "notifylist event whois",
|
"event 311", "notifylist event whois",
|
||||||
@ -285,7 +285,6 @@ static void ison_check_parts(IRC_SERVER_REC *server)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
notifylist_left(server, rec);
|
notifylist_left(server, rec);
|
||||||
notify_nick_destroy(rec);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -232,6 +232,8 @@ void notifylist_left(IRC_SERVER_REC *server, NOTIFY_NICK_REC *rec)
|
|||||||
rec->user, rec->host,
|
rec->user, rec->host,
|
||||||
rec->realname, rec->awaymsg);
|
rec->realname, rec->awaymsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notify_nick_destroy(rec);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void notifylist_idle_reset(IRC_SERVER_REC *server, const char *nick)
|
static void notifylist_idle_reset(IRC_SERVER_REC *server, const char *nick)
|
||||||
@ -297,7 +299,7 @@ static void notifylist_check_join(IRC_SERVER_REC *server, const char *nick,
|
|||||||
g_free_not_null(rec->realname);
|
g_free_not_null(rec->realname);
|
||||||
rec->user = g_strdup(user);
|
rec->user = g_strdup(user);
|
||||||
rec->host = g_strdup(host);
|
rec->host = g_strdup(host);
|
||||||
rec->realname = *realname == '\0' ? NULL : g_strdup(realname);
|
rec->realname = realname == NULL || *realname == '\0' ? NULL : g_strdup(realname);
|
||||||
|
|
||||||
if (away != -1) rec->away = away;
|
if (away != -1) rec->away = away;
|
||||||
rec->host_ok = TRUE;
|
rec->host_ok = TRUE;
|
||||||
|
Loading…
Reference in New Issue
Block a user