Skip to content

Commit

Permalink
audit: fixup audit_init()
Browse files Browse the repository at this point in the history
Make sure everything is initialized before we start the kauditd_thread
and don't emit the "initialized" record until everything is finished.
We also panic with a descriptive message if we can't start the
kauditd_thread.

Signed-off-by: Paul Moore <[email protected]>
  • Loading branch information
pcmoore committed Dec 14, 2016
1 parent 55a6f17 commit 6c92556
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions kernel/audit.c
Original file line number Diff line number Diff line change
Expand Up @@ -1180,21 +1180,23 @@ static int __init audit_init(void)
audit_default ? "enabled" : "disabled");
register_pernet_subsys(&audit_net_ops);

kauditd_task = kthread_run(kauditd_thread, NULL, "kauditd");
if (IS_ERR(kauditd_task))
return PTR_ERR(kauditd_task);

skb_queue_head_init(&audit_skb_queue);
skb_queue_head_init(&audit_skb_hold_queue);
audit_initialized = AUDIT_INITIALIZED;
audit_enabled = audit_default;
audit_ever_enabled |= !!audit_default;

audit_log(NULL, GFP_KERNEL, AUDIT_KERNEL, "initialized");

for (i = 0; i < AUDIT_INODE_BUCKETS; i++)
INIT_LIST_HEAD(&audit_inode_hash[i]);

kauditd_task = kthread_run(kauditd_thread, NULL, "kauditd");
if (IS_ERR(kauditd_task)) {
int err = PTR_ERR(kauditd_task);
panic("audit: failed to start the kauditd thread (%d)\n", err);
}

audit_log(NULL, GFP_KERNEL, AUDIT_KERNEL, "initialized");

return 0;
}
__initcall(audit_init);
Expand Down

0 comments on commit 6c92556

Please sign in to comment.