nfsd: Fix sort_pacl in fs/nfsd/nf4acl.c to actually sort groups
We have been doing some extensive testing of Linux support for ACLs on NFDS v4. We have noticed that the server rejects ACLs where the groups are out of order, for example, the following ACL is rejected: A::OWNER@:rwaxtTcCy A::user101@domain:rwaxtcy A::GROUP@:rwaxtcy A:g:group102@domain:rwaxtcy A:g:group101@domain:rwaxtcy A::EVERYONE@:rwaxtcy Examining the server code, I found that after converting an NFS v4 ACL to POSIX, sort_pacl is called to sort the user ACEs and group ACEs. Unfortunately, a minor bug causes the group sort to be skipped. Signed-off-by: Frank Filz <ffilzlnx@us.ibm.com> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
This commit is contained in:
Родитель
dc83d6e27f
Коммит
aba24d7158
|
@ -389,7 +389,7 @@ sort_pacl(struct posix_acl *pacl)
|
|||
sort_pacl_range(pacl, 1, i-1);
|
||||
|
||||
BUG_ON(pacl->a_entries[i].e_tag != ACL_GROUP_OBJ);
|
||||
j = i++;
|
||||
j = ++i;
|
||||
while (pacl->a_entries[j].e_tag == ACL_GROUP)
|
||||
j++;
|
||||
sort_pacl_range(pacl, i, j-1);
|
||||
|
|
Загрузка…
Ссылка в новой задаче