Re: [PATCH] nfs4_setfacl: Skip comment field while reading ACE(s).

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for taking care of this.

On Wed, Apr 10, 2019 at 2:20 AM J. Bruce Fields <bfields@xxxxxxxxxxxx> wrote:
>
> Applied, with some fixes:
>
> On Tue, Mar 26, 2019 at 07:41:09PM +0530, Kenneth D'souza wrote:
> > 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
>
> Just skip it silently, there's not need to print anything.
>
> >  ## 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);
>
> So let's just do a "continue" here, as above.  Also notice we usually
> leave a space after "if".
>
> --b.
>
> > +             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



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux