Re: [PATCH] audit: clear thread flag for new children

Tony Jones
2007-10-29T17:22:48Z

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