diff --git a/Changes b/Changes index 9faaf4f20..d28784ed6 100644 --- a/Changes +++ b/Changes @@ -2187,3 +2187,4 @@ seen. gmtime warning still there - Probably fixed server-notices bug (duplicates, to non-opers) caused by a few SVS* cmds, reported by _loco_ (#0000991). - Fixed a bug in the win32 editor reported by ChAoS^TiGeR +- Fixed /map bug that permitted trivial finding of U-lined servers diff --git a/src/s_serv.c b/src/s_serv.c index a0a91f340..1b6903cbd 100644 --- a/src/s_serv.c +++ b/src/s_serv.c @@ -4484,7 +4484,8 @@ void dump_map(aClient *cptr, aClient *server, char *mask, int prompt_length, int for (lp = Servers; lp; lp = lp->next) { acptr = lp->value.cptr; - if (acptr->srvptr != server) + if (acptr->srvptr != server || + IsULine(acptr) && !IsOper(cptr) && HIDE_ULINES) continue; acptr->flags |= FLAGS_MAP; cnt++; @@ -4493,14 +4494,13 @@ void dump_map(aClient *cptr, aClient *server, char *mask, int prompt_length, int for (lp = Servers; lp; lp = lp->next) { acptr = lp->value.cptr; - if (acptr->srvptr != server) + if (IsULine(acptr) && HIDE_ULINES && !IsOper(cptr)) continue; - --cnt; - if (IsULine(acptr) && HIDE_ULINES && !IsAnOper(cptr)) + if (acptr->srvptr != server) continue; if (!acptr->flags & FLAGS_MAP) continue; - if (cnt == 0) + if (--cnt == 0) *p = '`'; dump_map(cptr, acptr, mask, prompt_length + 2, length - 2);