mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-07-08 06:03:12 +02:00
Fixed an SVSNICK bug that could lead to duplicate users in very rare circumstances
This commit is contained in:
@@ -3281,3 +3281,5 @@ This is the 3.2 fixes branch.
|
||||
- Fixed find_qline crashes regarding except tkl 'type qline', reported by Gilou (#0001882).
|
||||
- Fixed some CIDR bugs causing things not to match.
|
||||
- Fixed a CIDR bug when compiled without IPv6 support
|
||||
- Fixed an SVSNICK bug that could lead to duplicate users in very rare circumstances
|
||||
(#0001874) reported by Jiuka.
|
||||
|
||||
@@ -97,14 +97,14 @@ int m_svsnick(aClient *cptr, aClient *sptr, int parc, char *parv[])
|
||||
if (!hunt_server_token(cptr, sptr, MSG_SVSNICK, TOK_SVSNICK, "%s %s :%s", 1, parc,
|
||||
parv) != HUNTED_ISME)
|
||||
{
|
||||
if (do_nick_name(parv[2]) == 0)
|
||||
return 0;
|
||||
if ((acptr = find_person(parv[1], NULL)))
|
||||
{
|
||||
if (find_client(parv[2], NULL)) /* Collision */
|
||||
return exit_client(cptr, acptr, sptr,
|
||||
"Nickname collision due to Services enforced "
|
||||
"nickname change, your nick was overruled");
|
||||
if (do_nick_name(parv[2]) == 0)
|
||||
return 0;
|
||||
acptr->umodes &= ~UMODE_REGNICK;
|
||||
acptr->lastnick = TS2ts(parv[3]);
|
||||
sendto_common_channels(acptr, ":%s NICK :%s", parv[1],
|
||||
|
||||
Reference in New Issue
Block a user