Bug #17368
closedmds: allowed GIDs must be ordered in the cephx string
0%
Description
If you do something like
ASSERT_TRUE(cap.parse(g_ceph_context, "allow * uid=10 gids=10,11,12; allow * uid=12 gids=12,10", NULL));
ASSERT_TRUE(cap.is_capable("foo", 0, 10, 0770, 12, 12, &glist10, MAY_READ | MAY_WRITE, 0, 0));
(where that "&glist10" is a vector holding the integer 10, to let clients pass multiple GIDs; it's in my wip-uid branch)
the second ASSERT_TRUE fails. This is because our parsing code does not order gids, and our gid search code assumes they are ordered.
We could update the search code to do a linear search, but that's failure-prone and annoying. Unfortunately the qi parsing code is also annoying, so we're getting this ticket instead of a patch from me that fixes it. ;)
Updated by Greg Farnum over 7 years ago
- Status changed from New to Fix Under Review
A new patch on https://github.com/ceph/ceph/pull/11218
Updated by Greg Farnum over 7 years ago
- Status changed from Fix Under Review to Resolved