Re: [PATCH] checkpolicy: Check the right bits of an ibpkeycon rule subnet prefix

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

 



On Mon, Jul 29, 2024 at 11:28 AM Stephen Smalley
<stephen.smalley.work@xxxxxxxxx> wrote:
>
> On Mon, Jul 8, 2024 at 12:50 PM James Carter <jwcart2@xxxxxxxxx> wrote:
> >
> > The lower 64 bits of the subnet prefix for an ibpkeycon rule should
> > all be 0's. Unfortunately the check uses the s6_addr macro which refers
> > to the 16 entry array of 8-bit values in the union and does not refer
> > to the correct bits.
> >
> > Use the s6_addr32 macro instead which refers to the 4 entry array of
> > 32-bit values in the union and refers to the lower 64 bits.
> >
> > Signed-off-by: James Carter <jwcart2@xxxxxxxxx>
>
> Acked-by: Stephen Smalley <stephen.smalley.work@xxxxxxxxx>

One caveat here is that I believe this breaks building checkpolicy on
macOS because s6_addr32 is non-portable.
But it looks like a previous commit re-introduced the usage of
s6_addr32 (we had gotten rid of them earlier to avoid
needing ifdefs for macOS).

>
> > ---
> >  checkpolicy/policy_define.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/checkpolicy/policy_define.c b/checkpolicy/policy_define.c
> > index 4931f23d..bfeda86b 100644
> > --- a/checkpolicy/policy_define.c
> > +++ b/checkpolicy/policy_define.c
> > @@ -5036,7 +5036,7 @@ int define_ibpkey_context(unsigned int low, unsigned int high)
> >                 goto out;
> >         }
> >
> > -       if (subnet_prefix.s6_addr[2] || subnet_prefix.s6_addr[3]) {
> > +       if (subnet_prefix.s6_addr32[2] || subnet_prefix.s6_addr32[3]) {
> >                 yyerror("subnet prefix should be 0's in the low order 64 bits.");
> >                 rc = -1;
> >                 goto out;
> > --
> > 2.45.2
> >
> >





[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux