Re: [PATCH 3/3] libselinux: sefcontext_compile invert semantics of "-r" flag

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

 



On Mon, Sep 26, 2016 at 10:43 AM, Stephen Smalley <sds@xxxxxxxxxxxxx> wrote:
> On 09/26/2016 10:22 AM, Janis Danisevskis wrote:
>> The "-r" flag of sefcontext_compile now causes it to omit the
>> precompiled regular expressions from the output.
>
> The code itself looks ok, aside from William's suggestion. Experimenting
> with this a bit, I noticed the following difference in sizes among the
> various options:
>
> 383165  file_contexts (text)
> 1507941 file_contexts.bin (binary with pcre1 regexes)
> 8304105 file_contexts.bin (binary with pcre2 regexes)
> 540540  file_contexts.bin (binary omitting pcre2 regexes, via -r)

What's the size of the textual intermediate file?

>
> The increase in file_contexts.bin size from pcre1 to pcre2 (unless using
> -r) is quite substantial.  Wondering how that affects the cost/benefit
> tradeoff...
>
>>
>> Signed-off-by: Janis Danisevskis <jdanis@xxxxxxxxxxx>
>> ---
>>  libselinux/utils/sefcontext_compile.c | 12 +++++++-----
>>  1 file changed, 7 insertions(+), 5 deletions(-)
>>
>> diff --git a/libselinux/utils/sefcontext_compile.c b/libselinux/utils/sefcontext_compile.c
>> index 8c48d32..b2746c7 100644
>> --- a/libselinux/utils/sefcontext_compile.c
>> +++ b/libselinux/utils/sefcontext_compile.c
>> @@ -276,10 +276,12 @@ static void usage(const char *progname)
>>           "         will be fc_file with the .bin suffix appended.\n\t"
>>           "-p       Optional binary policy file that will be used to\n\t"
>>           "         validate contexts defined in the fc_file.\n\t"
>> -         "-r       Include precompiled regular expressions in the output.\n\t"
>> +         "-r       Omit precompiled regular expressions from the output.\n\t"
>>           "         (PCRE2 only. Compiled PCRE2 regular expressions are\n\t"
>> -         "         not portable across architectures. When linked against\n\t"
>> -         "         PCRE this flag is ignored)\n\t"
>> +         "         not portable across architectures. Use this flag\n\t"
>> +         "         if you know that you build for an incompatible\n\t"
>> +         "         architecture to save space. When linked against\n\t"
>> +         "         PCRE1 this flag is ignored.)\n\t"
>>           "-i       Print regular expression info end exit. That is, back\n\t"
>>           "         end version and architecture identifier.\n\t"
>>           "         Arch identifier format (PCRE2):\n\t"
>> @@ -294,7 +296,7 @@ int main(int argc, char *argv[])
>>  {
>>       const char *path = NULL;
>>       const char *out_file = NULL;
>> -     int do_write_precompregex = 0;
>> +     int do_write_precompregex = 1;
>>       char stack_path[PATH_MAX + 1];
>>       char *tmp = NULL;
>>       int fd, rc, opt;
>> @@ -315,7 +317,7 @@ int main(int argc, char *argv[])
>>                       policy_file = optarg;
>>                       break;
>>               case 'r':
>> -                     do_write_precompregex = 1;
>> +                     do_write_precompregex = 0;
>>                       break;
>>               case 'i':
>>                       printf("%s (%s)\n", regex_version(),
>>
>



-- 
Respectfully,

William C Roberts
_______________________________________________
Selinux mailing list
Selinux@xxxxxxxxxxxxx
To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx.
To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.



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

  Powered by Linux