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

Reply via email to