[apparmor] [PATCH 04/11] Fix the x intersection consistency test

John Johansen john.johansen at canonical.com
Wed Mar 7 19:52:32 UTC 2012


On 03/07/2012 10:27 AM, Steve Beattie wrote:
> On Wed, Mar 07, 2012 at 06:17:23AM -0800, John Johansen wrote:
>> The in x intersection consistency test for minimization was failing because
>> it was screening off the AA_MAY_EXEC permission before passing the exec
>> information to the consistency test fn.  This resulted in the consistency
>> test fn not testing the consistency because it treated the permission set
>> as not having x permissions.
>>
>> Signed-off-by: John Johansen <john.johansen at canonical.com>
> 
> It *looks* sensible, but applying this patch plus the first 2 (but
> not the third, which doesn't apply for some reason) results in the
> parser testsuite having 11 new failures; without this patch, there's
> no failures. I have yet to look into why.
> 
Yes it will, because this particular bug is part of the reason the next one
wasn't caught sooner.  Fixing it turns up a lot of errors happening

In fact you won't get the complete test suite passing until the very last
patch.

>> ---
>>  parser/immunix.h                             |    3 +++
>>  parser/libapparmor_re/hfa.h                  |    8 ++++----
>>  parser/tst/simple_tests/xtrans/x-conflict.sd |   11 +++++++++++
>>  3 files changed, 18 insertions(+), 4 deletions(-)
>>  create mode 100644 parser/tst/simple_tests/xtrans/x-conflict.sd
>>
>> diff --git a/parser/immunix.h b/parser/immunix.h
>> index 72446fc..8dc157a 100644
>> --- a/parser/immunix.h
>> +++ b/parser/immunix.h
>> @@ -96,6 +96,9 @@
>>  
>>  #define ALL_AA_EXEC_TYPE		(AA_USER_EXEC_TYPE | AA_OTHER_EXEC_TYPE)
>>  
>> +#define ALL_USER_EXEC			(AA_USER_EXEC | AA_USER_EXEC_TYPE)
>> +#define ALL_OTHER_EXEC			(AA_OTHER_EXEC | AA_OTHER_EXEC_TYPE)
>> +
>>  #define AA_LINK_BITS			((AA_MAY_LINK << AA_USER_SHIFT) | \
>>  					 (AA_MAY_LINK << AA_OTHER_SHIFT))
>>  
>> diff --git a/parser/libapparmor_re/hfa.h b/parser/libapparmor_re/hfa.h
>> index c77905d..a35becb 100644
>> --- a/parser/libapparmor_re/hfa.h
>> +++ b/parser/libapparmor_re/hfa.h
>> @@ -50,8 +50,8 @@ public:
>>  	{
>>  		deny |= rhs.deny;
>>  
>> -		if (!is_merged_x_consistent(allow & AA_USER_EXEC_TYPE,
>> -					    rhs.allow & AA_USER_EXEC_TYPE)) {
>> +		if (!is_merged_x_consistent(allow & ALL_USER_EXEC,
>> +					    rhs.allow & ALL_USER_EXEC)) {
>>  			if ((exact & AA_USER_EXEC_TYPE) &&
>>  			    !(rhs.exact & AA_USER_EXEC_TYPE)) {
>>  				/* do nothing */
>> @@ -64,8 +64,8 @@ public:
>>  		} else
>>  			allow |= rhs.allow & AA_USER_EXEC_TYPE;
>>  
>> -		if (!is_merged_x_consistent(allow & AA_OTHER_EXEC_TYPE,
>> -					    rhs.allow & AA_OTHER_EXEC_TYPE)) {
>> +		if (!is_merged_x_consistent(allow & ALL_OTHER_EXEC,
>> +					    rhs.allow & ALL_OTHER_EXEC)) {
>>  			if ((exact & AA_OTHER_EXEC_TYPE) &&
>>  			    !(rhs.exact & AA_OTHER_EXEC_TYPE)) {
>>  				/* do nothing */
>> diff --git a/parser/tst/simple_tests/xtrans/x-conflict.sd b/parser/tst/simple_tests/xtrans/x-conflict.sd
>> new file mode 100644
>> index 0000000..92215f9
>> --- /dev/null
>> +++ b/parser/tst/simple_tests/xtrans/x-conflict.sd
>> @@ -0,0 +1,11 @@
>> +#
>> +#=DESCRIPTION test for conflict resolution in minimization phase of dfa gen
>> +#=EXRESULT FAIL
>> +#=TODO
>> +#
>> +/usr/bin/foo {
>> +  /b* px,
>> +  /* Pixr,
>> +  /a* Cx -> foo,
>> +}
>> +
>> -- 
>> 1.7.9
>>
>>
>> -- 
>> AppArmor mailing list
>> AppArmor at lists.ubuntu.com
>> Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/apparmor
> 
> 
> 




More information about the AppArmor mailing list