Skip to content

Commit

Permalink
nfsd: Fix sort_pacl in fs/nfsd/nf4acl.c to actually sort groups
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Frank Filz authored and J. Bruce Fields committed Oct 27, 2009
1 parent dc83d6e commit aba24d7
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion fs/nfsd/nfs4acl.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit aba24d7

Please sign in to comment.