]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/mds/MDSAuthCaps.cc
update sources to v12.2.3
[ceph.git] / ceph / src / mds / MDSAuthCaps.cc
index e22e449cd42218a5a1e8946064f5b0cd30abc19f..1f819827f3004df5fa89070d58c4cd0632d82609 100644 (file)
@@ -116,19 +116,21 @@ bool MDSCapMatch::match(const std::string &target_path,
   if (uid != MDS_AUTH_UID_ANY) {
     if (uid != caller_uid)
       return false;
-    bool gid_matched = false;
-    if (std::find(gids.begin(), gids.end(), caller_gid) != gids.end())
-      gid_matched = true;
-    if (caller_gid_list) {
-      for (auto i = caller_gid_list->begin(); i != caller_gid_list->end(); ++i) {
-       if (std::find(gids.begin(), gids.end(), *i) != gids.end()) {
-         gid_matched = true;
-         break;
+    if (!gids.empty()) {
+      bool gid_matched = false;
+      if (std::find(gids.begin(), gids.end(), caller_gid) != gids.end())
+       gid_matched = true;
+      if (caller_gid_list) {
+       for (auto i = caller_gid_list->begin(); i != caller_gid_list->end(); ++i) {
+         if (std::find(gids.begin(), gids.end(), *i) != gids.end()) {
+           gid_matched = true;
+           break;
+         }
        }
       }
+      if (!gid_matched)
+       return false;
     }
-    if (!gid_matched)
-      return false;
   }
 
   if (!match_path(target_path)) {