[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Acl-devel] [PATCH] libacl: Fix acl_from_text() returning NULL on al
From: |
Dmitry V. Levin |
Subject: |
Re: [Acl-devel] [PATCH] libacl: Fix acl_from_text() returning NULL on all input |
Date: |
Thu, 20 Apr 2017 17:42:29 +0300 |
On Thu, Apr 20, 2017 at 04:26:53PM +0200, Andreas Gruenbacher wrote:
> On Thu, Apr 20, 2017 at 2:40 AM, Dmitry V. Levin <address@hidden> wrote:
> > Commit 5dac69ce914202c587f00da638123403111ca673 introduced a regression:
> > apparently, gcc treats
> > #pragma GCC diagnostic pop
> > as a kind of statement, so this causes parse_acl_entry()
> > to return -1 unconditionally, and therefore causes acl_from_text()
> > to return NULL unconditionally, too.
> >
> > Fix this by moving the pragma after the "if" statement.
>
> That's interesting. I've applied the fix, thanks.
>
> > Reported-by: Valery Inozemtsev <address@hidden>
> > ---
> > libacl/acl_from_text.c | 2 +-
> > test/misc.test | 1 +
> > 2 files changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/libacl/acl_from_text.c b/libacl/acl_from_text.c
> > index bb2ab04..09790c9 100644
> > --- a/libacl/acl_from_text.c
> > +++ b/libacl/acl_from_text.c
> > @@ -307,8 +307,8 @@ create_entry:
> > #pragma GCC diagnostic push
> > #pragma GCC diagnostic ignored "-Waddress"
> > if (acl_copy_entry(entry_d, int2ext(&entry_obj)) != 0)
> > -#pragma GCC diagnostic pop
> > return -1;
> > +#pragma GCC diagnostic pop
> > return 0;
> >
> > fail:
> > diff --git a/test/misc.test b/test/misc.test
> > index c4d9774..3d39b42 100644
> > --- a/test/misc.test
> > +++ b/test/misc.test
> > @@ -8,6 +8,7 @@ two dummy users (bin and daemon) and a dummy group (daemon).
> > $ touch f
> >
> > Only change a base ACL:
> > + $ chacl u::rw,g::r,o::- f
>
> What's this? Skipped ...
It's a regression test for the fix.
--
ldv
signature.asc
Description: PGP signature