Martin Schwenke has uploaded this change for review.
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.