On Wed, Dec 31, 2014 at 7:01 PM, Al Viro <viro(a)zeniv.linux.org.uk> wrote:
On Wed, Dec 31, 2014 at 05:08:12PM -0500, Paul Moore wrote:
> The getname/putname hacks work in the normal file case, but it falls apart
> when you start talking about AF_UNIX socket files where the filename string
> doesn't go through the getname/putname refcount tricks. In the past (no idea
> how far back this goes off the top of my head) this wasn't an issue since the
> code which recorded the filenames in the audit records was broken, but since
> we just "fixed" that problem, the AF_UNIX socket problem is now making an
> appearance.
>
> At least that is how it looks to me right now, if I'm wrong about this and
I'm
> missing an obvious fix I'm all ears/eyes/etc.
Umm... How about just adding a function that would be used instead of
all those
struct filename filename = { .name = name };
and created an object that would be destroyed later by putname()?
That was one of the thoughts I had, but considering all the love for
the audit subsystem I wasn't certain if that would be well received by
the other kernel devs. Now that we at least have the panic/oops
resolved, that frees up some time for debate/discussion; I'll work up
a patchset that takes this approach and we'll see what pushback there
is, if any.
--
paul moore
www.paul-moore.com