Re: Boot regression caused by kauditd

From: Cong Wang
Date: Thu Apr 27 2017 - 01:04:41 EST


On Wed, Apr 26, 2017 at 2:20 PM, Paul Moore <paul@xxxxxxxxxxxxxx> wrote:
> Hi,
>
> Thanks for the report, this is the only one like it that I've seen.
> I'm looking at the code in Linus' tree and I'm not seeing anything
> obvious ... looking at the trace above it appears that the problem is
> when get_net() goes to bump the refcount and the passed net pointer is
> NULL; unless I'm missing something, the only way this would happen in
> kauditd_thread() is if the auditd_conn.pid value is non-zero but the
> auditd_conn.net pointer is NULL.
>
> That shouldn't happen.
>
> The only way I could see that even being possible is if the
> sock_net(NETLINK_CB(skb).sk) call in audit_receive_msg() returned NULL
> which in turned was passed as the net pointer (third parameter) in the
> auditd_set() call. Once again, I don't think this should ever be
> possible? Am I missing something?

I don't have time to look into it yet, I think I can take a look tomorrow.

>
> I realize you aren't able to reproduce this reliably, but if you do,
> any chance you try it with Linus' tree? I'd like to see if we can
> rule out the changes in net-next (my testing doesn't typically include
> net-next patches).
>

Will do, I tried to boot for ~6 times today to reproduce it but just saw
it once.

Thanks.