Martin Schwenke has uploaded this change for review.

View Change

FSAL: Fix regression in POSIX ACL mapping code

get_entry() is called for all entries, including those with tag
ACL_USER_OBJ and ACL_GROUP_OBJ. However, acl_set_qualifier(3) will
return EINVAL if:

The value of the tag type in the ACL entry referenced by the
argument entry_d is neither ACL_USER nor ACL_GROUP.

This was OK until commit 76692cd79f31bdd097cda4503de7df956e42cecd
insisted that acl_set_qualifier(3) should succeed. Now, get_entry()
fails for entries tagged ACL_USER_OBJ and ACL_GROUP_OBJ.

The failure mode is quite spectacular, with corresponding calls to
isdeny() returning true in fsal_acl_2_posix_acl(), causing allow ACEs
for ACL_USER_OBJ and ACL_GROUP_OBJ not to be generated.

Make the call to acl_set_qualifier(3) conditional on supported tags.

Signed-off-by: Martin Schwenke <mschwenke@ddn.com>
Change-Id: Id401b0608212a66eb717eaec8896c5ccf006b990
---
M src/FSAL/posix_acls.c
1 file changed, 33 insertions(+), 4 deletions(-)

git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/78/535378/1

To view, visit change 535378. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: Id401b0608212a66eb717eaec8896c5ccf006b990
Gerrit-Change-Number: 535378
Gerrit-PatchSet: 1
Gerrit-Owner: Martin Schwenke <martin@meltin.net>
Gerrit-MessageType: newchange