With commit 6630629bb661a7f48fb9856f7fd9616ce1499efa an additional field for filename was added due to which nfs4_setfacl failed to handle comments while reading ACE(s) from nfs4_getfacl output. This patch resolves the issue by skipping comment header. With fix: $ nfs4_setfacl --test -s "$(nfs4_getfacl file1)" file2 Skipping comment # file: file1 ## Test mode only - the resulting ACL for "/test/file2": A::OWNER@:rwatTcCy A:g:GROUP@:rtcy A::EVERYONE@:rtcy Without fix: $ nfs4_setfacl --test -s "$(nfs4_getfacl file1)" file2 Failed while inserting ACE(s). Signed-off-by: Kenneth D'souza <kdsouza@xxxxxxxxxx> --- libnfs4acl/nfs4_insert_string_aces.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/libnfs4acl/nfs4_insert_string_aces.c b/libnfs4acl/nfs4_insert_string_aces.c index 5a482d5..50b7bbf 100644 --- a/libnfs4acl/nfs4_insert_string_aces.c +++ b/libnfs4acl/nfs4_insert_string_aces.c @@ -45,21 +45,25 @@ int nfs4_insert_string_aces(struct nfs4_acl *acl, const char *acl_spec, unsigned if ((s = sp = strdup(acl_spec)) == NULL) goto out_failed; + while ((ssp = strsep(&sp, ",\t\n\r")) != NULL) { if (!strlen(ssp)) continue; - if ((ace = nfs4_ace_from_string(ssp, acl->is_directory)) == NULL) - goto out_failed; + if(*ssp == '#') + printf("Skipping comment %s\n", ssp); + else { + if ((ace = nfs4_ace_from_string(ssp, acl->is_directory)) == NULL) + goto out_failed; - if (nfs4_insert_ace_at(acl, ace, index++)) { - free(ace); - goto out_failed; + if (nfs4_insert_ace_at(acl, ace, index++)) { + free(ace); + goto out_failed; + } } } if (acl->naces == 0) goto out_failed; - out: if (s) free(s); -- 2.20.1