diff options
author | Felix Becker <git@felixbecker.name> | 2019-11-04 01:37:35 +0300 |
---|---|---|
committer | Felix Becker <git@felixbecker.name> | 2019-11-04 02:52:56 +0300 |
commit | 2faf9051676157295108576bbd93ced29dd4fb2a (patch) | |
tree | 660779604ca4d7ff085d07999ecef6a361774467 /src/murmur/Server.cpp | |
parent | ccdb88f872b85e04733e1e39ed78b23142ab581c (diff) |
Try to fix channel limit override by subchan delete
Try to remove the ability to join a full channel by
creating a temporary sub channel then joining it
and removing it (discovered by @Natenom).
Check isChannelFull in addition to existing
hasPermissions ChanACL::Enter check.
Diffstat (limited to 'src/murmur/Server.cpp')
-rw-r--r-- | src/murmur/Server.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/murmur/Server.cpp b/src/murmur/Server.cpp index 15037c5c5..39f5bbe9c 100644 --- a/src/murmur/Server.cpp +++ b/src/murmur/Server.cpp @@ -1626,7 +1626,7 @@ void Server::removeChannel(Channel *chan, Channel *dest) { } Channel *target = dest; - while (target->cParent && ! hasPermission(static_cast<ServerUser *>(p), target, ChanACL::Enter)) + while (target->cParent && (! hasPermission(static_cast<ServerUser *>(p), target, ChanACL::Enter) || isChannelFull(target, static_cast<ServerUser *>(p)))) target = target->cParent; MumbleProto::UserState mpus; |