Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Becker <git@felixbecker.name>2019-11-04 01:37:35 +0300
committerFelix Becker <git@felixbecker.name>2019-11-04 02:52:56 +0300
commit2faf9051676157295108576bbd93ced29dd4fb2a (patch)
tree660779604ca4d7ff085d07999ecef6a361774467 /src/murmur/Server.cpp
parentccdb88f872b85e04733e1e39ed78b23142ab581c (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.cpp2
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;