We only need to check if kauditd is valid after we start it, if kauditd is invalid, we will set kauditd_task to NULL. So next time, we will start kauditd again.
It means if kauditd_task is not NULL,it must be valid. Signed-off-by: Gao feng <[email protected]> --- kernel/audit.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/kernel/audit.c b/kernel/audit.c index d596e53..c3a6ead 100644 --- a/kernel/audit.c +++ b/kernel/audit.c @@ -660,12 +660,13 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) /* As soon as there's any sign of userspace auditd, * start kauditd to talk to it */ - if (!kauditd_task) + if (!kauditd_task) { kauditd_task = kthread_run(kauditd_thread, NULL, "kauditd"); - if (IS_ERR(kauditd_task)) { - err = PTR_ERR(kauditd_task); - kauditd_task = NULL; - return err; + if (IS_ERR(kauditd_task)) { + err = PTR_ERR(kauditd_task); + kauditd_task = NULL; + return err; + } } loginuid = audit_get_loginuid(current); -- 1.7.11.7 -- Linux-audit mailing list [email protected] https://www.redhat.com/mailman/listinfo/linux-audit
