audit: get rid of *NO* daemon at audit_pid=0 message
kauditd_send_skb is called after audit_pid was checked to be non-zero. However, it can be set to 0 due to auditd exiting while kauditd_send_skb is still executed and this can result in a spurious warning about missing auditd. Re-check audit_pid before printing the message. Signed-off-by: Mateusz Guzik <mguzik@redhat.com> Cc: Eric Paris <eparis@redhat.com> Cc: linux-kernel@vger.kernel.org Acked-by: Eric Paris <eparis@redhat.com> Signed-off-by: Richard Guy Briggs <rgb@redhat.com> Signed-off-by: Eric Paris <eparis@redhat.com>
This commit is contained in:
Родитель
61c0ee8792
Коммит
04ee1a3b8f
|
@ -410,10 +410,12 @@ static void kauditd_send_skb(struct sk_buff *skb)
|
|||
err = netlink_unicast(audit_sock, skb, audit_nlk_portid, 0);
|
||||
if (err < 0) {
|
||||
BUG_ON(err != -ECONNREFUSED); /* Shouldn't happen */
|
||||
printk(KERN_ERR "audit: *NO* daemon at audit_pid=%d\n", audit_pid);
|
||||
audit_log_lost("auditd disappeared\n");
|
||||
audit_pid = 0;
|
||||
audit_sock = NULL;
|
||||
if (audit_pid) {
|
||||
printk(KERN_ERR "audit: *NO* daemon at audit_pid=%d\n", audit_pid);
|
||||
audit_log_lost("auditd disappeared\n");
|
||||
audit_pid = 0;
|
||||
audit_sock = NULL;
|
||||
}
|
||||
/* we might get lucky and get this in the next auditd */
|
||||
audit_hold_skb(skb);
|
||||
} else
|
||||
|
|
Загрузка…
Ссылка в новой задаче