[PATCH] audit: clear thread flag for new children

Tony Jones tonyj at suse.de
Mon Oct 29 17:20:58 UTC 2007


On Sat, Oct 27, 2007 at 10:21:39AM -0400, Steve Grubb wrote:
> On Friday 26 October 2007 04:42:28 pm Tony Jones wrote:
> > Thread flag TIF_SYSCALL_AUDIT is not cleared for new children when audit
> > context creation has been disabled (auditctl -e0). This can cause new
> > children forked from a parent created when audit was enabled to not take
> > the fastest syscall path thru entry.S
> 
> This came up almost 2 years ago:
> 
> https://www.redhat.com/archives/linux-audit/2005-September/msg00048.html

I was not aware of this, thanks.

> The problem is that removing that flag makes the children unauditable in the 
> future. The only place that flag gets set is during fork. 

I don't see this.  The case that would be undesirable would be for a task
to have an audit context but to not have the thread flag enabled.  That isn't
the case.  This was the point Chris made in his Ack, although perhaps somewhat
tersely.

> Unless I'm missing something, to make all children auditable again would 
> mean stopping all processes and or'ing that flag into all thread info areas. 

I think you are.  Or maybe the code was different two years ago so that the
above made sense.   

In the above scenario, audit is disabled, a new child is forked, we bail
early so there is no audit context (and now there is no flag in the thread
area).   Currently there is no way this task is ever going to be audited as 
there is no audit context.    If this task forks a new child, at this point
the value of audit enabled will determine if there should be a context 
allocated and it will allocate the TIF flag also.   I don't see your stopping
all processes scenario.

> I do not want to propose that patch to LKML.  :)

;-)

Tony




More information about the Linux-audit mailing list