Re: [PATCH] libsepol: do not modify policy during write

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

 



On Thu, Jun 30, 2022 at 2:45 PM James Carter <jwcart2@xxxxxxxxx> wrote:
>
> On Thu, Jun 30, 2022 at 1:04 PM Christian Göttsche
> <cgzones@xxxxxxxxxxxxxx> wrote:
> >
> > Do not modify the in memory default_range value of a class datum while
> > writing a policy.
> >
> > While on it fix indentation.
> >
> > Signed-off-by: Christian Göttsche <cgzones@xxxxxxxxxxxxxx>
>
> Acked-by: James Carter <jwcart2@xxxxxxxxx>
>

Merged.
Thanks,
Jim

> > ---
> >  libsepol/src/write.c | 16 +++++++++-------
> >  1 file changed, 9 insertions(+), 7 deletions(-)
> >
> > diff --git a/libsepol/src/write.c b/libsepol/src/write.c
> > index 48ed21ea..a9fdf93a 100644
> > --- a/libsepol/src/write.c
> > +++ b/libsepol/src/write.c
> > @@ -1097,16 +1097,18 @@ static int class_write(hashtab_key_t key, hashtab_datum_t datum, void *ptr)
> >              p->policyvers >= POLICYDB_VERSION_NEW_OBJECT_DEFAULTS) ||
> >             (p->policy_type == POLICY_BASE &&
> >              p->policyvers >= MOD_POLICYDB_VERSION_NEW_OBJECT_DEFAULTS)) {
> > +               char default_range = cladatum->default_range;
> > +
> >                 buf[0] = cpu_to_le32(cladatum->default_user);
> >                 buf[1] = cpu_to_le32(cladatum->default_role);
> > -               if (!glblub_version && cladatum->default_range == DEFAULT_GLBLUB) {
> > +               if (!glblub_version && default_range == DEFAULT_GLBLUB) {
> >                         WARN(fp->handle,
> > -                             "class %s default_range set to GLBLUB but policy version is %d (%d required), discarding",
> > -                             p->p_class_val_to_name[cladatum->s.value - 1], p->policyvers,
> > -                             p->policy_type == POLICY_KERN? POLICYDB_VERSION_GLBLUB:MOD_POLICYDB_VERSION_GLBLUB);
> > -                        cladatum->default_range = 0;
> > -                }
> > -               buf[2] = cpu_to_le32(cladatum->default_range);
> > +                            "class %s default_range set to GLBLUB but policy version is %d (%d required), discarding",
> > +                            p->p_class_val_to_name[cladatum->s.value - 1], p->policyvers,
> > +                            p->policy_type == POLICY_KERN? POLICYDB_VERSION_GLBLUB:MOD_POLICYDB_VERSION_GLBLUB);
> > +                       default_range = 0;
> > +               }
> > +               buf[2] = cpu_to_le32(default_range);
> >                 items = put_entry(buf, sizeof(uint32_t), 3, fp);
> >                 if (items != 3)
> >                         return POLICYDB_ERROR;
> > --
> > 2.36.1
> >




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

  Powered by Linux