* Use of optional_policy in templates (compiler bug or feature?)
@ 2008-10-15 16:02 Joe Nall
2008-10-15 18:46 ` Christopher J. PeBenito
0 siblings, 1 reply; 21+ messages in thread
From: Joe Nall @ 2008-10-15 16:02 UTC (permalink / raw)
To: SE Linux
Is it legitimate to define a type within an optional_policy within a
template?
I ask because there are a number of compile issues with policy that
look like:
template(`wm_domain_template',`
...
optional_policy(`
dbus_system_bus_client_template($1_wm,$1_wm_t)
# does not compile
# dbus_user_bus_client_template($1,$1_wm,$1_wm_t)
')
...
')
Looking at the checkmodule source, it looks like type declarations
declared within optionals are popped off the symbol stack in
end_optional but left in the symbol table. These symbols later fail an
is_id_in_scope test and generate an 'duplicate declaration of type/
attribute'.
I think this is related to:
http://oss.tresys.com/projects/refpolicy/ticket/43
and earlier complaints about this behavior in the X policy from Dan
and Eamon in June/July.
http://www.nsa.gov/SeLinux/list-archive/0806/thread_body18.cfm
I'm running libsepol-2.0.33 which has the fix in the above thread.
joe
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.
^ permalink raw reply [flat|nested] 21+ messages in thread* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-15 16:02 Use of optional_policy in templates (compiler bug or feature?) Joe Nall @ 2008-10-15 18:46 ` Christopher J. PeBenito 2008-10-15 19:59 ` Joe Nall 0 siblings, 1 reply; 21+ messages in thread From: Christopher J. PeBenito @ 2008-10-15 18:46 UTC (permalink / raw) To: Joe Nall; +Cc: SE Linux On Wed, 2008-10-15 at 11:02 -0500, Joe Nall wrote: > Is it legitimate to define a type within an optional_policy within a > template? Yes. > I ask because there are a number of compile issues with policy that > look like: > > template(`wm_domain_template',` > ... > optional_policy(` > dbus_system_bus_client_template($1_wm,$1_wm_t) > # does not compile > # dbus_user_bus_client_template($1,$1_wm,$1_wm_t) > ') > ... > ') I can't reproduce this by just adding it to a random module; there are likely more factors that just the above template calls. > Looking at the checkmodule source, it looks like type declarations > declared within optionals are popped off the symbol stack in > end_optional but left in the symbol table. These symbols later fail an > is_id_in_scope test and generate an 'duplicate declaration of type/ > attribute'. > > I think this is related to: > http://oss.tresys.com/projects/refpolicy/ticket/43 > > and earlier complaints about this behavior in the X policy from Dan > and Eamon in June/July. > http://www.nsa.gov/SeLinux/list-archive/0806/thread_body18.cfm > > I'm running libsepol-2.0.33 which has the fix in the above thread. -- Chris PeBenito Tresys Technology, LLC (410) 290-1411 x150 -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-15 18:46 ` Christopher J. PeBenito @ 2008-10-15 19:59 ` Joe Nall 2008-10-16 12:49 ` Christopher J. PeBenito 0 siblings, 1 reply; 21+ messages in thread From: Joe Nall @ 2008-10-15 19:59 UTC (permalink / raw) To: Christopher J. PeBenito; +Cc: SE Linux On Oct 15, 2008, at 1:46 PM, Christopher J. PeBenito wrote: > On Wed, 2008-10-15 at 11:02 -0500, Joe Nall wrote: >> Is it legitimate to define a type within an optional_policy within a >> template? > > Yes. > >> I ask because there are a number of compile issues with policy that >> look like: >> >> template(`wm_domain_template',` >> ... >> optional_policy(` >> dbus_system_bus_client_template($1_wm,$1_wm_t) >> # does not compile >> # dbus_user_bus_client_template($1,$1_wm,$1_wm_t) >> ') >> ... >> ') > > I can't reproduce this by just adding it to a random module; there are > likely more factors that just the above template calls. Using stock Fedora targeted policy: policy_module(swo,1.0.0) userdom_unpriv_user_template(swo) dbus_chat_user_bus(swo,swo_t) joe -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-15 19:59 ` Joe Nall @ 2008-10-16 12:49 ` Christopher J. PeBenito 2008-10-16 13:43 ` Joe Nall 0 siblings, 1 reply; 21+ messages in thread From: Christopher J. PeBenito @ 2008-10-16 12:49 UTC (permalink / raw) To: Joe Nall; +Cc: SE Linux On Wed, 2008-10-15 at 14:59 -0500, Joe Nall wrote: > On Oct 15, 2008, at 1:46 PM, Christopher J. PeBenito wrote: > > > On Wed, 2008-10-15 at 11:02 -0500, Joe Nall wrote: > >> Is it legitimate to define a type within an optional_policy within a > >> template? > > > > Yes. > > > >> I ask because there are a number of compile issues with policy that > >> look like: > >> > >> template(`wm_domain_template',` > >> ... > >> optional_policy(` > >> dbus_system_bus_client_template($1_wm,$1_wm_t) > >> # does not compile > >> # dbus_user_bus_client_template($1,$1_wm,$1_wm_t) > >> ') > >> ... > >> ') > > > > I can't reproduce this by just adding it to a random module; there are > > likely more factors that just the above template calls. > > Using stock Fedora targeted policy: > > policy_module(swo,1.0.0) > > userdom_unpriv_user_template(swo) > dbus_chat_user_bus(swo,swo_t) Well this is a weird case, because you have this situation: optional { # optionally declare the type # from userdom_unpriv_user_template(swo) type swo_dbusd_t; } # unconditionally require the type for this module # from dbus_chat_user_bus(swo,swo_t) require { type swo_dbusd_t; } but even if you make the second interface call optional too, you'll still get the compile error. -- Chris PeBenito Tresys Technology, LLC (410) 290-1411 x150 -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-16 12:49 ` Christopher J. PeBenito @ 2008-10-16 13:43 ` Joe Nall 2008-10-16 14:50 ` Joshua Brindle 0 siblings, 1 reply; 21+ messages in thread From: Joe Nall @ 2008-10-16 13:43 UTC (permalink / raw) To: Christopher J. PeBenito; +Cc: SE Linux On Oct 16, 2008, at 7:49 AM, Christopher J. PeBenito wrote: > On Wed, 2008-10-15 at 14:59 -0500, Joe Nall wrote: >> On Oct 15, 2008, at 1:46 PM, Christopher J. PeBenito wrote: >> >>> On Wed, 2008-10-15 at 11:02 -0500, Joe Nall wrote: >>>> Is it legitimate to define a type within an optional_policy >>>> within a >>>> template? >>> >>> Yes. >>> >>>> I ask because there are a number of compile issues with policy that >>>> look like: >>>> >>>> template(`wm_domain_template',` >>>> ... >>>> optional_policy(` >>>> dbus_system_bus_client_template($1_wm,$1_wm_t) >>>> # does not compile >>>> # dbus_user_bus_client_template($1,$1_wm,$1_wm_t) >>>> ') >>>> ... >>>> ') >>> >>> I can't reproduce this by just adding it to a random module; there >>> are >>> likely more factors that just the above template calls. >> >> Using stock Fedora targeted policy: >> >> policy_module(swo,1.0.0) >> >> userdom_unpriv_user_template(swo) >> dbus_chat_user_bus(swo,swo_t) > > Well this is a weird case, because you have this situation: > > optional { > # optionally declare the type > # from userdom_unpriv_user_template(swo) > type swo_dbusd_t; > } > > # unconditionally require the type for this module > # from dbus_chat_user_bus(swo,swo_t) > require { > type swo_dbusd_t; > } > > > but even if you make the second interface call optional too, you'll > still get the compile error. Weird wrong or weird corner case that ought to work? joe -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-16 13:43 ` Joe Nall @ 2008-10-16 14:50 ` Joshua Brindle 2008-10-16 15:46 ` Joe Nall 2008-10-20 18:19 ` Daniel J Walsh 0 siblings, 2 replies; 21+ messages in thread From: Joshua Brindle @ 2008-10-16 14:50 UTC (permalink / raw) To: Joe Nall; +Cc: Christopher J. PeBenito, SE Linux Joe Nall wrote: > > On Oct 16, 2008, at 7:49 AM, Christopher J. PeBenito wrote: > >> On Wed, 2008-10-15 at 14:59 -0500, Joe Nall wrote: >>> On Oct 15, 2008, at 1:46 PM, Christopher J. PeBenito wrote: >>> >>>> On Wed, 2008-10-15 at 11:02 -0500, Joe Nall wrote: >>>>> Is it legitimate to define a type within an optional_policy within a >>>>> template? >>>> >>>> Yes. >>>> >>>>> I ask because there are a number of compile issues with policy that >>>>> look like: >>>>> >>>>> template(`wm_domain_template',` >>>>> ... >>>>> optional_policy(` >>>>> dbus_system_bus_client_template($1_wm,$1_wm_t) >>>>> # does not compile >>>>> # dbus_user_bus_client_template($1,$1_wm,$1_wm_t) >>>>> ') >>>>> ... >>>>> ') >>>> >>>> I can't reproduce this by just adding it to a random module; there are >>>> likely more factors that just the above template calls. >>> >>> Using stock Fedora targeted policy: >>> >>> policy_module(swo,1.0.0) >>> >>> userdom_unpriv_user_template(swo) >>> dbus_chat_user_bus(swo,swo_t) >> >> Well this is a weird case, because you have this situation: >> >> optional { >> # optionally declare the type >> # from userdom_unpriv_user_template(swo) >> type swo_dbusd_t; >> } >> >> # unconditionally require the type for this module >> # from dbus_chat_user_bus(swo,swo_t) >> require { >> type swo_dbusd_t; >> } >> >> >> but even if you make the second interface call optional too, you'll >> still get the compile error. > > Weird wrong or weird corner case that ought to work? > Weird unsupported. It was thought non-trivial to deterministically enable optionals in cases like this. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-16 14:50 ` Joshua Brindle @ 2008-10-16 15:46 ` Joe Nall 2008-10-20 18:19 ` Daniel J Walsh 1 sibling, 0 replies; 21+ messages in thread From: Joe Nall @ 2008-10-16 15:46 UTC (permalink / raw) To: Joshua Brindle; +Cc: Christopher J. PeBenito, SE Linux, Daniel J Walsh On Oct 16, 2008, at 9:50 AM, Joshua Brindle wrote: > Joe Nall wrote: >> >> On Oct 16, 2008, at 7:49 AM, Christopher J. PeBenito wrote: >> >>> On Wed, 2008-10-15 at 14:59 -0500, Joe Nall wrote: >>>> On Oct 15, 2008, at 1:46 PM, Christopher J. PeBenito wrote: >>>> >>>>> On Wed, 2008-10-15 at 11:02 -0500, Joe Nall wrote: >>>>>> Is it legitimate to define a type within an optional_policy >>>>>> within a >>>>>> template? >>>>> >>>>> Yes. >>>>> >>>>>> I ask because there are a number of compile issues with policy >>>>>> that >>>>>> look like: >>>>>> >>>>>> template(`wm_domain_template',` >>>>>> ... >>>>>> optional_policy(` >>>>>> dbus_system_bus_client_template($1_wm,$1_wm_t) >>>>>> # does not compile >>>>>> # dbus_user_bus_client_template($1,$1_wm,$1_wm_t) >>>>>> ') >>>>>> ... >>>>>> ') >>>>> >>>>> I can't reproduce this by just adding it to a random module; >>>>> there are >>>>> likely more factors that just the above template calls. >>>> >>>> Using stock Fedora targeted policy: >>>> >>>> policy_module(swo,1.0.0) >>>> >>>> userdom_unpriv_user_template(swo) >>>> dbus_chat_user_bus(swo,swo_t) >>> >>> Well this is a weird case, because you have this situation: >>> >>> optional { >>> # optionally declare the type >>> # from userdom_unpriv_user_template(swo) >>> type swo_dbusd_t; >>> } >>> >>> # unconditionally require the type for this module >>> # from dbus_chat_user_bus(swo,swo_t) >>> require { >>> type swo_dbusd_t; >>> } >>> >>> >>> but even if you make the second interface call optional too, you'll >>> still get the compile error. >> >> Weird wrong or weird corner case that ought to work? >> > > Weird unsupported. It was thought non-trivial to deterministically > enable optionals in cases like this. So all optional policy in templates using a given derived type have to be in the same optional block? Dan took the per role expansion out of the core policy in fedora and put the per role templates in an optional blocks in role based .te files. This tickles this 'Weird unsupported' corner of the compiler repeatedly. The weird thing to me is that it mostly works. The big exceptions are in the X and dbus policies which have all sorts of nested optional interactions (just like the code). joe -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-16 14:50 ` Joshua Brindle 2008-10-16 15:46 ` Joe Nall @ 2008-10-20 18:19 ` Daniel J Walsh 2008-10-20 18:41 ` Joe Nall 1 sibling, 1 reply; 21+ messages in thread From: Daniel J Walsh @ 2008-10-20 18:19 UTC (permalink / raw) To: Joshua Brindle; +Cc: Joe Nall, Christopher J. PeBenito, SE Linux Joshua Brindle wrote: > Joe Nall wrote: >> >> On Oct 16, 2008, at 7:49 AM, Christopher J. PeBenito wrote: >> >>> On Wed, 2008-10-15 at 14:59 -0500, Joe Nall wrote: >>>> On Oct 15, 2008, at 1:46 PM, Christopher J. PeBenito wrote: >>>> >>>>> On Wed, 2008-10-15 at 11:02 -0500, Joe Nall wrote: >>>>>> Is it legitimate to define a type within an optional_policy within a >>>>>> template? >>>>> >>>>> Yes. >>>>> >>>>>> I ask because there are a number of compile issues with policy that >>>>>> look like: >>>>>> >>>>>> template(`wm_domain_template',` >>>>>> ... >>>>>> optional_policy(` >>>>>> dbus_system_bus_client_template($1_wm,$1_wm_t) >>>>>> # does not compile >>>>>> # dbus_user_bus_client_template($1,$1_wm,$1_wm_t) >>>>>> ') >>>>>> ... >>>>>> ') >>>>> >>>>> I can't reproduce this by just adding it to a random module; there are >>>>> likely more factors that just the above template calls. >>>> >>>> Using stock Fedora targeted policy: >>>> >>>> policy_module(swo,1.0.0) >>>> >>>> userdom_unpriv_user_template(swo) >>>> dbus_chat_user_bus(swo,swo_t) >>> >>> Well this is a weird case, because you have this situation: >>> >>> optional { >>> # optionally declare the type >>> # from userdom_unpriv_user_template(swo) >>> type swo_dbusd_t; >>> } >>> >>> # unconditionally require the type for this module >>> # from dbus_chat_user_bus(swo,swo_t) >>> require { >>> type swo_dbusd_t; >>> } >>> >>> >>> but even if you make the second interface call optional too, you'll >>> still get the compile error. >> >> Weird wrong or weird corner case that ought to work? >> > > Weird unsupported. It was thought non-trivial to deterministically > enable optionals in cases like this. > > > -- > This message was distributed to subscribers of the selinux mailing list. > If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov > with > the words "unsubscribe selinux" without quotes as the message. These cases happen to me all the time, and I end up having to code around them in weird ways. As the policy gets more complicated and interactions become more complex, we are going to see the compiler blow up. dbus, xserver, confined users, are all causing interesting failure modes. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-20 18:19 ` Daniel J Walsh @ 2008-10-20 18:41 ` Joe Nall 2008-10-20 23:52 ` Eamon Walsh 0 siblings, 1 reply; 21+ messages in thread From: Joe Nall @ 2008-10-20 18:41 UTC (permalink / raw) To: Daniel J Walsh; +Cc: Joshua Brindle, Christopher J. PeBenito, SE Linux On Oct 20, 2008, at 1:19 PM, Daniel J Walsh wrote: > Joshua Brindle wrote: >> Joe Nall wrote: >>> >>> On Oct 16, 2008, at 7:49 AM, Christopher J. PeBenito wrote: >>> >>>> On Wed, 2008-10-15 at 14:59 -0500, Joe Nall wrote: >>>>> On Oct 15, 2008, at 1:46 PM, Christopher J. PeBenito wrote: >>>>> >>>>>> On Wed, 2008-10-15 at 11:02 -0500, Joe Nall wrote: >>>>>>> Is it legitimate to define a type within an optional_policy >>>>>>> within a >>>>>>> template? >>>>>> >>>>>> Yes. >>>>>> >>>>>>> I ask because there are a number of compile issues with policy >>>>>>> that >>>>>>> look like: >>>>>>> >>>>>>> template(`wm_domain_template',` >>>>>>> ... >>>>>>> optional_policy(` >>>>>>> dbus_system_bus_client_template($1_wm,$1_wm_t) >>>>>>> # does not compile >>>>>>> # dbus_user_bus_client_template($1,$1_wm,$1_wm_t) >>>>>>> ') >>>>>>> ... >>>>>>> ') >>>>>> >>>>>> I can't reproduce this by just adding it to a random module; >>>>>> there are >>>>>> likely more factors that just the above template calls. >>>>> >>>>> Using stock Fedora targeted policy: >>>>> >>>>> policy_module(swo,1.0.0) >>>>> >>>>> userdom_unpriv_user_template(swo) >>>>> dbus_chat_user_bus(swo,swo_t) >>>> >>>> Well this is a weird case, because you have this situation: >>>> >>>> optional { >>>> # optionally declare the type >>>> # from userdom_unpriv_user_template(swo) >>>> type swo_dbusd_t; >>>> } >>>> >>>> # unconditionally require the type for this module >>>> # from dbus_chat_user_bus(swo,swo_t) >>>> require { >>>> type swo_dbusd_t; >>>> } >>>> >>>> >>>> but even if you make the second interface call optional too, you'll >>>> still get the compile error. >>> >>> Weird wrong or weird corner case that ought to work? >>> >> >> Weird unsupported. It was thought non-trivial to deterministically >> enable optionals in cases like this. >> >> >> -- >> This message was distributed to subscribers of the selinux mailing >> list. >> If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov >> with >> the words "unsubscribe selinux" without quotes as the message. > These cases happen to me all the time, and I end up having to code > around them in weird ways. As the policy gets more complicated and > interactions become more complex, we are going to see the compiler > blow up. > > dbus, xserver, confined users, are all causing interesting failure > modes. I'm really struggling to get our mls X policy to work around this issue. I have to rebuild the base policy for every change because the change has to be in the optional. blagh. joe -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-20 18:41 ` Joe Nall @ 2008-10-20 23:52 ` Eamon Walsh 2008-10-22 14:01 ` Stephen Smalley 0 siblings, 1 reply; 21+ messages in thread From: Eamon Walsh @ 2008-10-20 23:52 UTC (permalink / raw) To: Joshua Brindle Cc: Daniel J Walsh, Joe Nall, Christopher J. PeBenito, SE Linux, Stephen Smalley Joe Nall wrote: > I'm really struggling to get our mls X policy to work around this > issue. I have to rebuild the base policy for every change because the > change has to be in the optional. blagh. > > joe > We took a look at this and applied the following patch to checkmodule: diff --git a/checkpolicy/module_compiler.c b/checkpolicy/module_compiler.c index 36d20be..c8a6d05 100644 --- a/checkpolicy/module_compiler.c +++ b/checkpolicy/module_compiler.c @@ -904,8 +904,7 @@ static int require_type_or_attribute(int pass, unsigned char isattr) return -1; } case -2:{ - yyerror("duplicate declaration of type/attribute"); - return -1; + return 0; } case -1:{ yyerror("could not require type/attribute here"); The magic -2 value is documented at the top of require_symbol() as meaning "duplicate declaration", however, in the bowels of the function (module_compiler.c line 628) this is contradicted by the statement "previous declaration was not in scope or had a mismatched type/attribute." So I think the error message touched in the above patch is wrong, or at least not always correct. Anyway, the return -2 on line 628 is the case encountered by Joe's test code. And in fact applying the above patch changes the error to: /home/ewalsh/git/selinux/checkpolicy/checkmodule: loading policy configuration from tmp/swo.tmp swo.te":4:ERROR 'type swo_dbusd_t is not within scope' at token ';' on line 77949: allow swo_t swo_dbusd_t:dbus send_msg; #line 4 /home/ewalsh/git/selinux/checkpolicy/checkmodule: error(s) encountered while parsing configuration So perhaps we could do something like go back and promote type declarations in optional blocks into the containing scope when a require is encountered further along? Josh? -- Eamon Walsh <ewalsh@tycho.nsa.gov> National Security Agency -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-20 23:52 ` Eamon Walsh @ 2008-10-22 14:01 ` Stephen Smalley 2008-10-22 14:26 ` Joe Nall 0 siblings, 1 reply; 21+ messages in thread From: Stephen Smalley @ 2008-10-22 14:01 UTC (permalink / raw) To: Eamon Walsh Cc: Joshua Brindle, Daniel J Walsh, Joe Nall, Christopher J. PeBenito, SE Linux On Mon, 2008-10-20 at 19:52 -0400, Eamon Walsh wrote: > Joe Nall wrote: > > I'm really struggling to get our mls X policy to work around this > > issue. I have to rebuild the base policy for every change because the > > change has to be in the optional. blagh. > > > > joe > > > > We took a look at this and applied the following patch to checkmodule: > > diff --git a/checkpolicy/module_compiler.c > b/checkpolicy/module_compiler.c > index 36d20be..c8a6d05 100644 > --- a/checkpolicy/module_compiler.c > +++ b/checkpolicy/module_compiler.c > @@ -904,8 +904,7 @@ static int require_type_or_attribute(int pass, > unsigned char isattr) > return -1; > } > case -2:{ > - yyerror("duplicate declaration of type/attribute"); > - return -1; > + return 0; > } > case -1:{ > yyerror("could not require type/attribute here"); > > > > The magic -2 value is documented at the top of require_symbol() as > meaning "duplicate declaration", however, in the bowels of the > function > (module_compiler.c line 628) this is contradicted by the statement > "previous declaration was not in scope or had a mismatched > type/attribute." So I think the error message touched in the above > patch is wrong, or at least not always correct. > > Anyway, the return -2 on line 628 is the case encountered by Joe's > test > code. And in fact applying the above patch changes the error to: > > /home/ewalsh/git/selinux/checkpolicy/checkmodule: loading policy > configuration from tmp/swo.tmp > swo.te":4:ERROR 'type swo_dbusd_t is not within scope' at token ';' on > line 77949: > allow swo_t swo_dbusd_t:dbus send_msg; > #line 4 > /home/ewalsh/git/selinux/checkpolicy/checkmodule: error(s) > encountered while parsing configuration > > > So perhaps we could do something like go back and promote type > declarations in optional blocks into the containing scope when a > require > is encountered further along? Josh? What's wrong with just falling through in the require-follows-decl case and adding the avrule decl id to the scope datum such that later is_id_in_scope() checks succeed? With this patch applied, the trivial sample module posted by Joe builds for me, and can be inserted w/o error. I did notice however that I could also get it to build w/o changing checkmodule by reversing the order of the interface calls there - not sure if that workaround is usable in the original case that triggered this bug report. diff --git a/libsepol/src/policydb.c b/libsepol/src/policydb.c index d623343..be9c334 100644 --- a/libsepol/src/policydb.c +++ b/libsepol/src/policydb.c @@ -1273,9 +1273,6 @@ int symtab_insert(policydb_t * pol, uint32_t sym, } } else if (scope_datum->scope == SCOPE_REQ && scope == SCOPE_DECL) { scope_datum->scope = SCOPE_DECL; - } else if (scope_datum->scope != scope) { - /* This only happens in DECL then REQUIRE case, which is handled by caller */ - return -2; } /* search through the pre-existing list to avoid adding duplicates */ -- Stephen Smalley National Security Agency -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-22 14:01 ` Stephen Smalley @ 2008-10-22 14:26 ` Joe Nall 2008-10-22 14:28 ` Stephen Smalley 0 siblings, 1 reply; 21+ messages in thread From: Joe Nall @ 2008-10-22 14:26 UTC (permalink / raw) To: Stephen Smalley Cc: Eamon Walsh, Joshua Brindle, Daniel J Walsh, Christopher J. PeBenito, SE Linux On Oct 22, 2008, at 9:01 AM, Stephen Smalley wrote: > I did notice however that I could also get it to build w/o > changing checkmodule by reversing the order of the interface calls > there > - not sure if that workaround is usable in the original case that > triggered this bug report. Arranging modules in the proper order becomes increasingly difficult as module interaction grows. I finally de-optioned the X policy in fedora since it is in base so get our additions to compile. Patch included for reference. Making the compiler gracefully deal with options would really be appreciated. I could see the issue in the compiler code, but the right fix wasn't obvious. joe diff -up serefpolicy-3.5.10/policy/modules/system/userdomain.if.orig serefpolicy-3.5.10/policy/modules/system/userdomain.if --- serefpolicy-3.5.10/policy/modules/system/userdomain.if.orig 2008-10-20 14:14:37.000000000 -0500 +++ serefpolicy-3.5.10/policy/modules/system/userdomain.if 2008-10-20 14:27:37.000000000 -0500 ####################################### @@ -658,9 +660,7 @@ template(`userdom_common_user_template', userdom_exec_generic_pgms_template($1) - optional_policy(` - userdom_xwindows_client_template($1) - ') + userdom_xwindows_client_template($1) ############################## # -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-22 14:26 ` Joe Nall @ 2008-10-22 14:28 ` Stephen Smalley 2008-10-22 14:32 ` Stephen Smalley 0 siblings, 1 reply; 21+ messages in thread From: Stephen Smalley @ 2008-10-22 14:28 UTC (permalink / raw) To: Joe Nall Cc: Eamon Walsh, Joshua Brindle, Daniel J Walsh, Christopher J. PeBenito, SE Linux On Wed, 2008-10-22 at 09:26 -0500, Joe Nall wrote: > On Oct 22, 2008, at 9:01 AM, Stephen Smalley wrote: > > > I did notice however that I could also get it to build w/o > > changing checkmodule by reversing the order of the interface calls > > there > > - not sure if that workaround is usable in the original case that > > triggered this bug report. > > > Arranging modules in the proper order becomes increasingly difficult > as module interaction grows. I finally de-optioned the X policy in > fedora since it is in base so get our additions to compile. Patch > included for reference. > > Making the compiler gracefully deal with options would really be > appreciated. I could see the issue in the compiler code, but the right > fix wasn't obvious. Does the patch I posted fix your problem? > joe > > diff -up serefpolicy-3.5.10/policy/modules/system/userdomain.if.orig > serefpolicy-3.5.10/policy/modules/system/userdomain.if > --- serefpolicy-3.5.10/policy/modules/system/userdomain.if.orig > 2008-10-20 14:14:37.000000000 -0500 > +++ serefpolicy-3.5.10/policy/modules/system/userdomain.if > 2008-10-20 14:27:37.000000000 -0500 > ####################################### > @@ -658,9 +660,7 @@ template(`userdom_common_user_template', > > userdom_exec_generic_pgms_template($1) > > - optional_policy(` > - userdom_xwindows_client_template($1) > - ') > + userdom_xwindows_client_template($1) > > ############################## > # -- Stephen Smalley National Security Agency -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-22 14:28 ` Stephen Smalley @ 2008-10-22 14:32 ` Stephen Smalley 2008-10-22 17:42 ` Joshua Brindle 2008-11-24 3:35 ` Joe Nall 0 siblings, 2 replies; 21+ messages in thread From: Stephen Smalley @ 2008-10-22 14:32 UTC (permalink / raw) To: Joe Nall Cc: Eamon Walsh, Joshua Brindle, Daniel J Walsh, Christopher J. PeBenito, SE Linux On Wed, 2008-10-22 at 10:28 -0400, Stephen Smalley wrote: > On Wed, 2008-10-22 at 09:26 -0500, Joe Nall wrote: > > On Oct 22, 2008, at 9:01 AM, Stephen Smalley wrote: > > > > > I did notice however that I could also get it to build w/o > > > changing checkmodule by reversing the order of the interface calls > > > there > > > - not sure if that workaround is usable in the original case that > > > triggered this bug report. > > > > > > Arranging modules in the proper order becomes increasingly difficult > > as module interaction grows. I finally de-optioned the X policy in > > fedora since it is in base so get our additions to compile. Patch > > included for reference. > > > > Making the compiler gracefully deal with options would really be > > appreciated. I could see the issue in the compiler code, but the right > > fix wasn't obvious. > > Does the patch I posted fix your problem? And by fix, I mean not only does it allow you to build the policy but does it yield the expected final kernel policy (i.e. look at the policy.N file via apol and check that you are getting the expected types and rules in the final policy). -- Stephen Smalley National Security Agency -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-22 14:32 ` Stephen Smalley @ 2008-10-22 17:42 ` Joshua Brindle 2008-10-23 14:10 ` Stephen Smalley 2008-11-24 3:35 ` Joe Nall 1 sibling, 1 reply; 21+ messages in thread From: Joshua Brindle @ 2008-10-22 17:42 UTC (permalink / raw) To: Stephen Smalley Cc: Joe Nall, Eamon Walsh, Daniel J Walsh, Christopher J. PeBenito, SE Linux Stephen Smalley wrote: > On Wed, 2008-10-22 at 10:28 -0400, Stephen Smalley wrote: > >> On Wed, 2008-10-22 at 09:26 -0500, Joe Nall wrote: >> >>> On Oct 22, 2008, at 9:01 AM, Stephen Smalley wrote: >>> >>> >>>> I did notice however that I could also get it to build w/o >>>> changing checkmodule by reversing the order of the interface calls >>>> there >>>> - not sure if that workaround is usable in the original case that >>>> triggered this bug report. >>>> >>> Arranging modules in the proper order becomes increasingly difficult >>> as module interaction grows. I finally de-optioned the X policy in >>> fedora since it is in base so get our additions to compile. Patch >>> included for reference. >>> >>> Making the compiler gracefully deal with options would really be >>> appreciated. I could see the issue in the compiler code, but the right >>> fix wasn't obvious. >>> >> Does the patch I posted fix your problem? >> > > And by fix, I mean not only does it allow you to build the policy but > does it yield the expected final kernel policy (i.e. look at the > policy.N file via apol and check that you are getting the expected types > and rules in the final policy). > I just worry that allowing situations like this will cause the linker to not properly (or deterministically) enable optional blocks. That is why we require everything be scoped locally to be used. We have, however, made changes to the linker algorithm since the original module codebase so it might have gotten better, but I don't think anyone has sat down and figured out exactly which cases can be required and which ones may be prevented. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-22 17:42 ` Joshua Brindle @ 2008-10-23 14:10 ` Stephen Smalley 2008-10-23 14:15 ` Joshua Brindle 2008-10-23 14:16 ` Stephen Smalley 0 siblings, 2 replies; 21+ messages in thread From: Stephen Smalley @ 2008-10-23 14:10 UTC (permalink / raw) To: Joshua Brindle Cc: Joe Nall, Eamon Walsh, Daniel J Walsh, Christopher J. PeBenito, SE Linux On Wed, 2008-10-22 at 13:42 -0400, Joshua Brindle wrote: > Stephen Smalley wrote: > > On Wed, 2008-10-22 at 10:28 -0400, Stephen Smalley wrote: > > > >> On Wed, 2008-10-22 at 09:26 -0500, Joe Nall wrote: > >> > >>> On Oct 22, 2008, at 9:01 AM, Stephen Smalley wrote: > >>> > >>> > >>>> I did notice however that I could also get it to build w/o > >>>> changing checkmodule by reversing the order of the interface calls > >>>> there > >>>> - not sure if that workaround is usable in the original case that > >>>> triggered this bug report. > >>>> > >>> Arranging modules in the proper order becomes increasingly difficult > >>> as module interaction grows. I finally de-optioned the X policy in > >>> fedora since it is in base so get our additions to compile. Patch > >>> included for reference. > >>> > >>> Making the compiler gracefully deal with options would really be > >>> appreciated. I could see the issue in the compiler code, but the right > >>> fix wasn't obvious. > >>> > >> Does the patch I posted fix your problem? > >> > > > > And by fix, I mean not only does it allow you to build the policy but > > does it yield the expected final kernel policy (i.e. look at the > > policy.N file via apol and check that you are getting the expected types > > and rules in the final policy). > > > > I just worry that allowing situations like this will cause the linker to > not properly (or deterministically) enable optional blocks. That is why > we require everything be scoped locally to be used. We have, however, > made changes to the linker algorithm since the original module codebase > so it might have gotten better, but I don't think anyone has sat down > and figured out exactly which cases can be required and which ones may > be prevented. The particular case is: optional { require { type system_dbusd_t, system_dbusd_t, dbusd_etc_t; class dbus { send_msg acquire_svc }; attribute dbusd_unconfined; } type swo_dbusd_t; ... } require { type swo_t; type swo_dbusd_t; class dbus send_msg; } ... So the require that is triggering a misleading "duplicate type/attribute" error under the current toolchain is not within an optional block at all. And if you switch the order, it compiles fine (because we already allow decl-follows-require). It shouldn't be order dependent obviously. In any event, the compiler breakage is preventing people from doing real work, and doesn't seem to be a bug in policy. It needs to be fixed. -- Stephen Smalley National Security Agency -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-23 14:10 ` Stephen Smalley @ 2008-10-23 14:15 ` Joshua Brindle 2008-10-23 14:16 ` Stephen Smalley 1 sibling, 0 replies; 21+ messages in thread From: Joshua Brindle @ 2008-10-23 14:15 UTC (permalink / raw) To: Stephen Smalley Cc: Joe Nall, Eamon Walsh, Daniel J Walsh, Christopher J. PeBenito, SE Linux Stephen Smalley wrote: > On Wed, 2008-10-22 at 13:42 -0400, Joshua Brindle wrote: > >> Stephen Smalley wrote: >> >>> On Wed, 2008-10-22 at 10:28 -0400, Stephen Smalley wrote: >>> >>> >>>> On Wed, 2008-10-22 at 09:26 -0500, Joe Nall wrote: >>>> >>>> >>>>> On Oct 22, 2008, at 9:01 AM, Stephen Smalley wrote: >>>>> >>>>> >>>>> >>>>>> I did notice however that I could also get it to build w/o >>>>>> changing checkmodule by reversing the order of the interface calls >>>>>> there >>>>>> - not sure if that workaround is usable in the original case that >>>>>> triggered this bug report. >>>>>> >>>>>> >>>>> Arranging modules in the proper order becomes increasingly difficult >>>>> as module interaction grows. I finally de-optioned the X policy in >>>>> fedora since it is in base so get our additions to compile. Patch >>>>> included for reference. >>>>> >>>>> Making the compiler gracefully deal with options would really be >>>>> appreciated. I could see the issue in the compiler code, but the right >>>>> fix wasn't obvious. >>>>> >>>>> >>>> Does the patch I posted fix your problem? >>>> >>>> >>> And by fix, I mean not only does it allow you to build the policy but >>> does it yield the expected final kernel policy (i.e. look at the >>> policy.N file via apol and check that you are getting the expected types >>> and rules in the final policy). >>> >>> >> I just worry that allowing situations like this will cause the linker to >> not properly (or deterministically) enable optional blocks. That is why >> we require everything be scoped locally to be used. We have, however, >> made changes to the linker algorithm since the original module codebase >> so it might have gotten better, but I don't think anyone has sat down >> and figured out exactly which cases can be required and which ones may >> be prevented. >> > > The particular case is: > optional { > require { > type system_dbusd_t, system_dbusd_t, dbusd_etc_t; > class dbus { send_msg acquire_svc }; > attribute dbusd_unconfined; > } > type swo_dbusd_t; > ... > } > > require { > type swo_t; > type swo_dbusd_t; > class dbus send_msg; > } > ... > > So the require that is triggering a misleading "duplicate > type/attribute" error under the current toolchain is not within an > optional block at all. And if you switch the order, it compiles fine > (because we already allow decl-follows-require). It shouldn't be order > dependent obviously. > > In any event, the compiler breakage is preventing people from doing real > work, and doesn't seem to be a bug in policy. It needs to be fixed. > > Ok, waiting on Joe to respond with whether your last patch fixed his problems then I'll apply it here and see if it blows anything up. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-23 14:10 ` Stephen Smalley 2008-10-23 14:15 ` Joshua Brindle @ 2008-10-23 14:16 ` Stephen Smalley 1 sibling, 0 replies; 21+ messages in thread From: Stephen Smalley @ 2008-10-23 14:16 UTC (permalink / raw) To: Joshua Brindle Cc: Joe Nall, Eamon Walsh, Daniel J Walsh, Christopher J. PeBenito, SE Linux On Thu, 2008-10-23 at 10:10 -0400, Stephen Smalley wrote: > On Wed, 2008-10-22 at 13:42 -0400, Joshua Brindle wrote: > > Stephen Smalley wrote: > > > On Wed, 2008-10-22 at 10:28 -0400, Stephen Smalley wrote: > > > > > >> On Wed, 2008-10-22 at 09:26 -0500, Joe Nall wrote: > > >> > > >>> On Oct 22, 2008, at 9:01 AM, Stephen Smalley wrote: > > >>> > > >>> > > >>>> I did notice however that I could also get it to build w/o > > >>>> changing checkmodule by reversing the order of the interface calls > > >>>> there > > >>>> - not sure if that workaround is usable in the original case that > > >>>> triggered this bug report. > > >>>> > > >>> Arranging modules in the proper order becomes increasingly difficult > > >>> as module interaction grows. I finally de-optioned the X policy in > > >>> fedora since it is in base so get our additions to compile. Patch > > >>> included for reference. > > >>> > > >>> Making the compiler gracefully deal with options would really be > > >>> appreciated. I could see the issue in the compiler code, but the right > > >>> fix wasn't obvious. > > >>> > > >> Does the patch I posted fix your problem? > > >> > > > > > > And by fix, I mean not only does it allow you to build the policy but > > > does it yield the expected final kernel policy (i.e. look at the > > > policy.N file via apol and check that you are getting the expected types > > > and rules in the final policy). > > > > > > > I just worry that allowing situations like this will cause the linker to > > not properly (or deterministically) enable optional blocks. That is why > > we require everything be scoped locally to be used. We have, however, > > made changes to the linker algorithm since the original module codebase > > so it might have gotten better, but I don't think anyone has sat down > > and figured out exactly which cases can be required and which ones may > > be prevented. > > The particular case is: > optional { > require { > type system_dbusd_t, system_dbusd_t, dbusd_etc_t; > class dbus { send_msg acquire_svc }; > attribute dbusd_unconfined; > } > type swo_dbusd_t; > ... > } > > require { > type swo_t; > type swo_dbusd_t; > class dbus send_msg; > } > ... > > So the require that is triggering a misleading "duplicate > type/attribute" error under the current toolchain is not within an > optional block at all. I suppose it might be within an optional though in the original case, just not in the trivial example produced by Joe to trigger the compiler error. > And if you switch the order, it compiles fine > (because we already allow decl-follows-require). It shouldn't be order > dependent obviously. > > In any event, the compiler breakage is preventing people from doing real > work, and doesn't seem to be a bug in policy. It needs to be fixed. ...even if that means a rewrite of the require + optional handling altogether. -- Stephen Smalley National Security Agency -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-10-22 14:32 ` Stephen Smalley 2008-10-22 17:42 ` Joshua Brindle @ 2008-11-24 3:35 ` Joe Nall 2008-12-02 14:26 ` Joe Nall 1 sibling, 1 reply; 21+ messages in thread From: Joe Nall @ 2008-11-24 3:35 UTC (permalink / raw) To: Stephen Smalley Cc: Eamon Walsh, Joshua Brindle, Daniel J Walsh, Christopher J. PeBenito, SE Linux On Oct 22, 2008, at 9:32 AM, Stephen Smalley wrote: > On Wed, 2008-10-22 at 10:28 -0400, Stephen Smalley wrote: >> On Wed, 2008-10-22 at 09:26 -0500, Joe Nall wrote: >>> On Oct 22, 2008, at 9:01 AM, Stephen Smalley wrote: >>> >>>> I did notice however that I could also get it to build w/o >>>> changing checkmodule by reversing the order of the interface calls >>>> there >>>> - not sure if that workaround is usable in the original case that >>>> triggered this bug report. >>> >>> >>> Arranging modules in the proper order becomes increasingly difficult >>> as module interaction grows. I finally de-optioned the X policy in >>> fedora since it is in base so get our additions to compile. Patch >>> included for reference. >>> >>> Making the compiler gracefully deal with options would really be >>> appreciated. I could see the issue in the compiler code, but the >>> right >>> fix wasn't obvious. >> >> Does the patch I posted fix your problem? > > And by fix, I mean not only does it allow you to build the policy but > does it yield the expected final kernel policy (i.e. look at the > policy.N file via apol and check that you are getting the expected > types > and rules in the final policy). I added your patch and Eamon's patch (not sure I needed Eamons's patch). I can definitely build the policy now. The types appear to be correct in apol and seinfo. It works as expected in enforcing. joe -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-11-24 3:35 ` Joe Nall @ 2008-12-02 14:26 ` Joe Nall 2008-12-02 14:27 ` Stephen Smalley 0 siblings, 1 reply; 21+ messages in thread From: Joe Nall @ 2008-12-02 14:26 UTC (permalink / raw) To: Stephen Smalley Cc: Eamon Walsh, Joshua Brindle, Daniel J Walsh, Christopher J. PeBenito, SE Linux On Nov 23, 2008, at 9:35 PM, Joe Nall wrote: > > On Oct 22, 2008, at 9:32 AM, Stephen Smalley wrote: > >> On Wed, 2008-10-22 at 10:28 -0400, Stephen Smalley wrote: >>> On Wed, 2008-10-22 at 09:26 -0500, Joe Nall wrote: >>>> On Oct 22, 2008, at 9:01 AM, Stephen Smalley wrote: >>>> >>>>> I did notice however that I could also get it to build w/o >>>>> changing checkmodule by reversing the order of the interface calls >>>>> there >>>>> - not sure if that workaround is usable in the original case that >>>>> triggered this bug report. >>>> >>>> >>>> Arranging modules in the proper order becomes increasingly >>>> difficult >>>> as module interaction grows. I finally de-optioned the X policy in >>>> fedora since it is in base so get our additions to compile. Patch >>>> included for reference. >>>> >>>> Making the compiler gracefully deal with options would really be >>>> appreciated. I could see the issue in the compiler code, but the >>>> right >>>> fix wasn't obvious. >>> >>> Does the patch I posted fix your problem? >> >> And by fix, I mean not only does it allow you to build the policy but >> does it yield the expected final kernel policy (i.e. look at the >> policy.N file via apol and check that you are getting the expected >> types >> and rules in the final policy). > > I added your patch and Eamon's patch (not sure I needed Eamons's > patch). > I can definitely build the policy now. > The types appear to be correct in apol and seinfo. It works as > expected in enforcing. It does need Eamon's patch. Any chance to test this on your end? joe -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: Use of optional_policy in templates (compiler bug or feature?) 2008-12-02 14:26 ` Joe Nall @ 2008-12-02 14:27 ` Stephen Smalley 0 siblings, 0 replies; 21+ messages in thread From: Stephen Smalley @ 2008-12-02 14:27 UTC (permalink / raw) To: Joe Nall Cc: Eamon Walsh, Joshua Brindle, Daniel J Walsh, Christopher J. PeBenito, SE Linux On Tue, 2008-12-02 at 08:26 -0600, Joe Nall wrote: > On Nov 23, 2008, at 9:35 PM, Joe Nall wrote: > > > > > On Oct 22, 2008, at 9:32 AM, Stephen Smalley wrote: > > > >> On Wed, 2008-10-22 at 10:28 -0400, Stephen Smalley wrote: > >>> On Wed, 2008-10-22 at 09:26 -0500, Joe Nall wrote: > >>>> On Oct 22, 2008, at 9:01 AM, Stephen Smalley wrote: > >>>> > >>>>> I did notice however that I could also get it to build w/o > >>>>> changing checkmodule by reversing the order of the interface calls > >>>>> there > >>>>> - not sure if that workaround is usable in the original case that > >>>>> triggered this bug report. > >>>> > >>>> > >>>> Arranging modules in the proper order becomes increasingly > >>>> difficult > >>>> as module interaction grows. I finally de-optioned the X policy in > >>>> fedora since it is in base so get our additions to compile. Patch > >>>> included for reference. > >>>> > >>>> Making the compiler gracefully deal with options would really be > >>>> appreciated. I could see the issue in the compiler code, but the > >>>> right > >>>> fix wasn't obvious. > >>> > >>> Does the patch I posted fix your problem? > >> > >> And by fix, I mean not only does it allow you to build the policy but > >> does it yield the expected final kernel policy (i.e. look at the > >> policy.N file via apol and check that you are getting the expected > >> types > >> and rules in the final policy). > > > > I added your patch and Eamon's patch (not sure I needed Eamons's > > patch). > > I can definitely build the policy now. > > The types appear to be correct in apol and seinfo. It works as > > expected in enforcing. > > It does need Eamon's patch. Any chance to test this on your end? I'm confused by that. Eamon's patch shouldn't be necessary if my patch was applied. -- Stephen Smalley National Security Agency -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2008-12-02 14:27 UTC | newest] Thread overview: 21+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-10-15 16:02 Use of optional_policy in templates (compiler bug or feature?) Joe Nall 2008-10-15 18:46 ` Christopher J. PeBenito 2008-10-15 19:59 ` Joe Nall 2008-10-16 12:49 ` Christopher J. PeBenito 2008-10-16 13:43 ` Joe Nall 2008-10-16 14:50 ` Joshua Brindle 2008-10-16 15:46 ` Joe Nall 2008-10-20 18:19 ` Daniel J Walsh 2008-10-20 18:41 ` Joe Nall 2008-10-20 23:52 ` Eamon Walsh 2008-10-22 14:01 ` Stephen Smalley 2008-10-22 14:26 ` Joe Nall 2008-10-22 14:28 ` Stephen Smalley 2008-10-22 14:32 ` Stephen Smalley 2008-10-22 17:42 ` Joshua Brindle 2008-10-23 14:10 ` Stephen Smalley 2008-10-23 14:15 ` Joshua Brindle 2008-10-23 14:16 ` Stephen Smalley 2008-11-24 3:35 ` Joe Nall 2008-12-02 14:26 ` Joe Nall 2008-12-02 14:27 ` Stephen Smalley
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.