[PATCH] M68KNOMMU: user ARRAY_SIZE macro when appropriate
[sfrench/cifs-2.6.git] / kernel / audit.c
index 0a36091ed712c069f49ac2b7c02a53ddb14cf929..d9b690ac684b9c6a638cee37d11949d62ef22992 100644 (file)
@@ -57,6 +57,7 @@
 #include <linux/netlink.h>
 #include <linux/selinux.h>
 #include <linux/inotify.h>
+#include <linux/freezer.h>
 
 #include "audit.h"
 
@@ -244,7 +245,7 @@ static int audit_set_rate_limit(int limit, uid_t loginuid, u32 sid)
                char *ctx = NULL;
                u32 len;
                int rc;
-               if ((rc = selinux_ctxid_to_string(sid, &ctx, &len)))
+               if ((rc = selinux_sid_to_string(sid, &ctx, &len)))
                        return rc;
                else
                        audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE,
@@ -267,7 +268,7 @@ static int audit_set_backlog_limit(int limit, uid_t loginuid, u32 sid)
                char *ctx = NULL;
                u32 len;
                int rc;
-               if ((rc = selinux_ctxid_to_string(sid, &ctx, &len)))
+               if ((rc = selinux_sid_to_string(sid, &ctx, &len)))
                        return rc;
                else
                        audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE,
@@ -293,7 +294,7 @@ static int audit_set_enabled(int state, uid_t loginuid, u32 sid)
                char *ctx = NULL;
                u32 len;
                int rc;
-               if ((rc = selinux_ctxid_to_string(sid, &ctx, &len)))
+               if ((rc = selinux_sid_to_string(sid, &ctx, &len)))
                        return rc;
                else
                        audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE,
@@ -321,7 +322,7 @@ static int audit_set_failure(int state, uid_t loginuid, u32 sid)
                char *ctx = NULL;
                u32 len;
                int rc;
-               if ((rc = selinux_ctxid_to_string(sid, &ctx, &len)))
+               if ((rc = selinux_sid_to_string(sid, &ctx, &len)))
                        return rc;
                else
                        audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE,
@@ -340,7 +341,7 @@ static int kauditd_thread(void *dummy)
 {
        struct sk_buff *skb;
 
-       while (1) {
+       while (!kthread_should_stop()) {
                skb = skb_dequeue(&audit_skb_queue);
                wake_up(&audit_backlog_wait);
                if (skb) {
@@ -369,6 +370,7 @@ static int kauditd_thread(void *dummy)
                        remove_wait_queue(&kauditd_wait, &wait);
                }
        }
+       return 0;
 }
 
 int audit_send_list(void *_dest)
@@ -538,7 +540,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
                if (status_get->mask & AUDIT_STATUS_PID) {
                        int old   = audit_pid;
                        if (sid) {
-                               if ((err = selinux_ctxid_to_string(
+                               if ((err = selinux_sid_to_string(
                                                sid, &ctx, &len)))
                                        return err;
                                else
@@ -576,7 +578,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
                                                 "user pid=%d uid=%u auid=%u",
                                                 pid, uid, loginuid);
                                if (sid) {
-                                       if (selinux_ctxid_to_string(
+                                       if (selinux_sid_to_string(
                                                        sid, &ctx, &len)) {
                                                audit_log_format(ab, 
                                                        " ssid=%u", sid);
@@ -614,7 +616,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
                                           loginuid, sid);
                break;
        case AUDIT_SIGNAL_INFO:
-               err = selinux_ctxid_to_string(audit_sig_sid, &ctx, &len);
+               err = selinux_sid_to_string(audit_sig_sid, &ctx, &len);
                if (err)
                        return err;
                sig_data = kmalloc(sizeof(*sig_data) + len, GFP_KERNEL);
@@ -1028,6 +1030,9 @@ void audit_log_hex(struct audit_buffer *ab, const unsigned char *buf,
        struct sk_buff *skb;
        static const unsigned char *hex = "0123456789ABCDEF";
 
+       if (!ab)
+               return;
+
        BUG_ON(!ab->skb);
        skb = ab->skb;
        avail = skb_tailroom(skb);
@@ -1060,6 +1065,9 @@ static void audit_log_n_string(struct audit_buffer *ab, size_t slen,
        unsigned char *ptr;
        struct sk_buff *skb;
 
+       if (!ab)
+               return;
+
        BUG_ON(!ab->skb);
        skb = ab->skb;
        avail = skb_tailroom(skb);