[apparmor] PATCH [3/6] - allow error= field to return negative error codes

John Johansen john.johansen at canonical.com
Fri Sep 10 00:44:34 BST 2010


On 09/09/2010 02:56 PM, Steve Beattie wrote:
> On Thu, Sep 09, 2010 at 08:36:32AM -0700, John Johansen wrote:
>> The kernel can return negative error codes for error=
>>
>> Index: libapparmor/src/grammar.y
>> ===================================================================
>> --- libapparmor.orig/src/grammar.y	2010-09-09 07:56:50.534193401 -0700
>> +++ libapparmor/src/grammar.y	2010-09-09 07:59:37.364193121 -0700
>> @@ -92,6 +92,7 @@
>>  
>>  %token TOK_EQUALS
>>  %token TOK_COLON
>> +%token TOK_MINUS
>>  %token TOK_OPEN_PAREN
>>  %token TOK_CLOSE_PAREN
>>  %token TOK_PERIOD
>> @@ -434,6 +435,8 @@
>>  	{ ret_record->event = lookup_aa_event($3);}
>>  	| TOK_KEY_ERROR TOK_EQUALS TOK_DIGITS
>>  	{ ret_record->error_code = $3;}
>> +	| TOK_KEY_ERROR TOK_EQUALS TOK_MINUS TOK_DIGITS
>> +	{ ret_record->error_code = $4;}
>>  	| TOK_KEY_FSUID TOK_EQUALS TOK_DIGITS
>>  	{ ret_record->fsuid = $3;}
>>  	| TOK_KEY_OUID TOK_EQUALS TOK_DIGITS
>> Index: libapparmor/src/scanner.l
>> ===================================================================
>> --- libapparmor.orig/src/scanner.l	2010-09-09 07:56:45.844193401 -0700
>> +++ libapparmor/src/scanner.l	2010-09-09 07:59:18.614191984 -0700
>> @@ -77,6 +77,7 @@
>>  digits		[0-9]+
>>  hex		[A-F0-9]
>>  colon		":"
>> +minus		"-"
>>  open_paren	"("
>>  close_paren	")"
>>  ID		[^ \t\n\(\)="'!]
>> @@ -280,6 +281,7 @@
>>  {equals}		{ return(TOK_EQUALS); }
>>  {digits}		{ yylval->t_long = atol(yytext); return(TOK_DIGITS); }
>>  {colon}			{ return(TOK_COLON); }
>> +{minus}			{ return(TOK_MINUS); }
>>  {open_paren}		{
>>  			BEGIN(sub_id);
>>  			return(TOK_OPEN_PAREN);
> 
> ACK from me for 2.5.1. Here's a testcase for this:

ACK on the test

> 
> === added file 'libraries/libapparmor/testsuite/test_multi/testcase_syslog_changehat_negative_error.err'
> === added file 'libraries/libapparmor/testsuite/test_multi/testcase_syslog_changehat_negative_error.in'
> --- libraries/libapparmor/testsuite/test_multi/testcase_syslog_changehat_negative_error.in	1970-01-01 00:00:00 +0000
> +++ libraries/libapparmor/testsuite/test_multi/testcase_syslog_changehat_negative_error.in	2010-09-09 21:39:54 +0000
> @@ -0,0 +1,1 @@
> +Sep  9 12:51:36 ubuntu-desktop kernel: [ 1597.774866] type=1400 audit(1284061896.005:28): apparmor="DENIED" operation="change_hat" info="unconfined" error=-1 pid=2698 comm="syscall_ptrace"
> 
> === added file 'libraries/libapparmor/testsuite/test_multi/testcase_syslog_changehat_negative_error.out'
> --- libraries/libapparmor/testsuite/test_multi/testcase_syslog_changehat_negative_error.out	1970-01-01 00:00:00 +0000
> +++ libraries/libapparmor/testsuite/test_multi/testcase_syslog_changehat_negative_error.out	2010-09-09 21:50:12 +0000
> @@ -0,0 +1,11 @@
> +START
> +File: test_multi/testcase_syslog_changehat_negative_error.in
> +Event type: AA_RECORD_DENIED
> +Audit ID: 1284061896.005:28
> +Operation: change_hat
> +Command: syscall_ptrace
> +Info: unconfined
> +ErrorCode: 1
> +PID: 2698
> +Epoch: 1284061896
> +Audit subid: 28
> 
> 
> 




More information about the AppArmor mailing list