Re: [PATCH userspace v2 4/7] secilc: add flag to enable policy optimization

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

 



On Tue, May 28, 2019 at 6:32 PM Dominick Grift <dac.override@xxxxxxxxx> wrote:
>
> On Tue, May 28, 2019 at 04:59:09PM +0200, Ondrej Mosnacek wrote:
> > Add a command-line option -O/--optimize to optimize the final policydb
> > using sepol_policydb_optimize() before writing it out.
> >
> > Signed-off-by: Ondrej Mosnacek <omosnace@xxxxxxxxxx>
> > ---
> >  secilc/secilc.c | 16 +++++++++++++++-
> >  1 file changed, 15 insertions(+), 1 deletion(-)
> >
> > diff --git a/secilc/secilc.c b/secilc/secilc.c
> > index ad6862ba..26996ef9 100644
> > --- a/secilc/secilc.c
> > +++ b/secilc/secilc.c
> > @@ -68,6 +68,7 @@ static __attribute__((__noreturn__)) void usage(const char *prog)
> >       printf("  -G, --expand-generated         Expand and remove auto-generated attributes\n");
> >       printf("  -X, --expand-size <SIZE>       Expand type attributes with fewer than <SIZE>\n");
> >       printf("                                 members.\n");
> > +     printf("  -n, --no-optimize              do not optimize final policy\n");
>
> I think something may have gone wrong here.

Ouch, you're right, I accidentally squashed the conversion into the
wrong patch (5/7). Will fix it up tomorrow.


>
> >       printf("  -v, --verbose                  increment verbosity level\n");
> >       printf("  -h, --help                     display usage information\n");
> >       exit(1);
> > @@ -97,6 +98,7 @@ int main(int argc, char *argv[])
> >       int policyvers = POLICYDB_VERSION_MAX;
> >       int attrs_expand_generated = 0;
> >       int attrs_expand_size = -1;
> > +     int optimize_policy = 1;
> >       int opt_char;
> >       int opt_index = 0;
> >       char *fc_buf = NULL;
> > @@ -117,12 +119,13 @@ int main(int argc, char *argv[])
> >               {"filecontexts", required_argument, 0, 'f'},
> >               {"expand-generated", no_argument, 0, 'G'},
> >               {"expand-size", required_argument, 0, 'X'},
> > +             {"no-optimize", no_argument, 0, 'n'},
> >               {0, 0, 0, 0}
> >       };
> >       int i;
> >
> >       while (1) {
> > -             opt_char = getopt_long(argc, argv, "o:f:U:hvt:M:PDmNc:GX:", long_opts, &opt_index);
> > +             opt_char = getopt_long(argc, argv, "o:f:U:hvt:M:PDmNc:GX:n", long_opts, &opt_index);
> >               if (opt_char == -1) {
> >                       break;
> >               }
> > @@ -211,6 +214,9 @@ int main(int argc, char *argv[])
> >                               }
> >                               break;
> >                       }
> > +                     case 'n':
> > +                             optimize_policy = 0;
> > +                             break;
> >                       case 'h':
> >                               usage(argv[0]);
> >                       case '?':
> > @@ -294,6 +300,14 @@ int main(int argc, char *argv[])
> >               goto exit;
> >       }
> >
> > +     if (optimize_policy) {
> > +             rc = sepol_policydb_optimize(pdb);
> > +             if (rc != SEPOL_OK) {
> > +                     fprintf(stderr, "Failed to optimize policydb\n");
> > +                     goto exit;
> > +             }
> > +     }
> > +
> >       if (output == NULL) {
> >               int size = snprintf(NULL, 0, "policy.%d", policyvers);
> >               output = malloc((size + 1) * sizeof(char));
> > --
> > 2.20.1
> >
>
> --
> Key fingerprint = 5F4D 3CDB D3F8 3652 FBD8 02D5 3B6C 5F1D 2C7B 6B02
> https://sks-keyservers.net/pks/lookup?op=get&search=0x3B6C5F1D2C7B6B02
> Dominick Grift



--
Ondrej Mosnacek <omosnace at redhat dot com>
Software Engineer, Security Technologies
Red Hat, Inc.



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

  Powered by Linux