]> Pileus Git - ~andy/linux/blobdiff - security/selinux/hooks.c
LSM: do not initialize common_audit_data to 0
[~andy/linux] / security / selinux / hooks.c
index d79762946c6e968177dcf8752861ff1d1120682c..d9fa2489a55167ae4d90b00c2ceb21a602aa5b0c 100644 (file)
@@ -1427,7 +1427,7 @@ static int cred_has_capability(const struct cred *cred,
        u32 av = CAP_TO_MASK(cap);
        int rc;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_CAP);
+       ad.type = LSM_AUDIT_DATA_CAP;
        ad.selinux_audit_data = &sad;
        ad.u.cap = cap;
 
@@ -1498,7 +1498,7 @@ static inline int dentry_has_perm(const struct cred *cred,
        struct common_audit_data ad;
        struct selinux_audit_data sad = {0,};
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_DENTRY);
+       ad.type = LSM_AUDIT_DATA_DENTRY;
        ad.u.dentry = dentry;
        ad.selinux_audit_data = &sad;
        return inode_has_perm(cred, inode, av, &ad, 0);
@@ -1515,7 +1515,7 @@ static inline int path_has_perm(const struct cred *cred,
        struct common_audit_data ad;
        struct selinux_audit_data sad = {0,};
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_PATH);
+       ad.type = LSM_AUDIT_DATA_PATH;
        ad.u.path = *path;
        ad.selinux_audit_data = &sad;
        return inode_has_perm(cred, inode, av, &ad, 0);
@@ -1540,7 +1540,7 @@ static int file_has_perm(const struct cred *cred,
        u32 sid = cred_sid(cred);
        int rc;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_PATH);
+       ad.type = LSM_AUDIT_DATA_PATH;
        ad.u.path = file->f_path;
        ad.selinux_audit_data = &sad;
 
@@ -1581,7 +1581,7 @@ static int may_create(struct inode *dir,
        sid = tsec->sid;
        newsid = tsec->create_sid;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_DENTRY);
+       ad.type = LSM_AUDIT_DATA_DENTRY;
        ad.u.dentry = dentry;
        ad.selinux_audit_data = &sad;
 
@@ -1636,7 +1636,7 @@ static int may_link(struct inode *dir,
        dsec = dir->i_security;
        isec = dentry->d_inode->i_security;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_DENTRY);
+       ad.type = LSM_AUDIT_DATA_DENTRY;
        ad.u.dentry = dentry;
        ad.selinux_audit_data = &sad;
 
@@ -1684,7 +1684,7 @@ static inline int may_rename(struct inode *old_dir,
        old_is_dir = S_ISDIR(old_dentry->d_inode->i_mode);
        new_dsec = new_dir->i_security;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_DENTRY);
+       ad.type = LSM_AUDIT_DATA_DENTRY;
        ad.selinux_audit_data = &sad;
 
        ad.u.dentry = old_dentry;
@@ -2010,7 +2010,7 @@ static int selinux_bprm_set_creds(struct linux_binprm *bprm)
                        return rc;
        }
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_PATH);
+       ad.type = LSM_AUDIT_DATA_PATH;
        ad.selinux_audit_data = &sad;
        ad.u.path = bprm->file->f_path;
 
@@ -2134,7 +2134,7 @@ static inline void flush_unauthorized_files(const struct cred *cred,
 
        /* Revalidate access to inherited open files. */
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_INODE);
+       ad.type = LSM_AUDIT_DATA_INODE;
        ad.selinux_audit_data = &sad;
 
        spin_lock(&files->file_lock);
@@ -2484,7 +2484,7 @@ static int selinux_sb_kern_mount(struct super_block *sb, int flags, void *data)
        if (flags & MS_KERNMOUNT)
                return 0;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_DENTRY);
+       ad.type = LSM_AUDIT_DATA_DENTRY;
        ad.selinux_audit_data = &sad;
        ad.u.dentry = sb->s_root;
        return superblock_has_perm(cred, sb, FILESYSTEM__MOUNT, &ad);
@@ -2496,7 +2496,7 @@ static int selinux_sb_statfs(struct dentry *dentry)
        struct common_audit_data ad;
        struct selinux_audit_data sad = {0,};
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_DENTRY);
+       ad.type = LSM_AUDIT_DATA_DENTRY;
        ad.selinux_audit_data = &sad;
        ad.u.dentry = dentry->d_sb->s_root;
        return superblock_has_perm(cred, dentry->d_sb, FILESYSTEM__GETATTR, &ad);
@@ -2666,7 +2666,7 @@ static noinline int audit_inode_permission(struct inode *inode,
        struct inode_security_struct *isec = inode->i_security;
        int rc;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_INODE);
+       ad.type = LSM_AUDIT_DATA_INODE;
        ad.selinux_audit_data = &sad;
        ad.u.inode = inode;
 
@@ -2796,7 +2796,7 @@ static int selinux_inode_setxattr(struct dentry *dentry, const char *name,
        if (!inode_owner_or_capable(inode))
                return -EPERM;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_DENTRY);
+       ad.type = LSM_AUDIT_DATA_DENTRY;
        ad.selinux_audit_data = &sad;
        ad.u.dentry = dentry;
 
@@ -3411,7 +3411,7 @@ static int selinux_kernel_module_request(char *kmod_name)
 
        sid = task_sid(current);
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_KMOD);
+       ad.type = LSM_AUDIT_DATA_KMOD;
        ad.selinux_audit_data = &sad;
        ad.u.kmod_name = kmod_name;
 
@@ -3792,7 +3792,7 @@ static int sock_has_perm(struct task_struct *task, struct sock *sk, u32 perms)
        if (sksec->sid == SECINITSID_KERNEL)
                return 0;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_NET);
+       ad.type = LSM_AUDIT_DATA_NET;
        ad.selinux_audit_data = &sad;
        ad.u.net = &net;
        ad.u.net->sk = sk;
@@ -3900,7 +3900,7 @@ static int selinux_socket_bind(struct socket *sock, struct sockaddr *address, in
                                                      snum, &sid);
                                if (err)
                                        goto out;
-                               COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_NET);
+                               ad.type = LSM_AUDIT_DATA_NET;
                                ad.selinux_audit_data = &sad;
                                ad.u.net = &net;
                                ad.u.net->sport = htons(snum);
@@ -3935,7 +3935,7 @@ static int selinux_socket_bind(struct socket *sock, struct sockaddr *address, in
                if (err)
                        goto out;
 
-               COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_NET);
+               ad.type = LSM_AUDIT_DATA_NET;
                ad.selinux_audit_data = &sad;
                ad.u.net = &net;
                ad.u.net->sport = htons(snum);
@@ -3997,7 +3997,7 @@ static int selinux_socket_connect(struct socket *sock, struct sockaddr *address,
                perm = (sksec->sclass == SECCLASS_TCP_SOCKET) ?
                       TCP_SOCKET__NAME_CONNECT : DCCP_SOCKET__NAME_CONNECT;
 
-               COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_NET);
+               ad.type = LSM_AUDIT_DATA_NET;
                ad.selinux_audit_data = &sad;
                ad.u.net = &net;
                ad.u.net->dport = htons(snum);
@@ -4094,7 +4094,7 @@ static int selinux_socket_unix_stream_connect(struct sock *sock,
        struct lsm_network_audit net = {0,};
        int err;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_NET);
+       ad.type = LSM_AUDIT_DATA_NET;
        ad.selinux_audit_data = &sad;
        ad.u.net = &net;
        ad.u.net->sk = other;
@@ -4127,7 +4127,7 @@ static int selinux_socket_unix_may_send(struct socket *sock,
        struct selinux_audit_data sad = {0,};
        struct lsm_network_audit net = {0,};
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_NET);
+       ad.type = LSM_AUDIT_DATA_NET;
        ad.selinux_audit_data = &sad;
        ad.u.net = &net;
        ad.u.net->sk = other->sk;
@@ -4170,7 +4170,7 @@ static int selinux_sock_rcv_skb_compat(struct sock *sk, struct sk_buff *skb,
        struct lsm_network_audit net = {0,};
        char *addrp;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_NET);
+       ad.type = LSM_AUDIT_DATA_NET;
        ad.selinux_audit_data = &sad;
        ad.u.net = &net;
        ad.u.net->netif = skb->skb_iif;
@@ -4226,7 +4226,7 @@ static int selinux_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb)
        if (!secmark_active && !peerlbl_active)
                return 0;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_NET);
+       ad.type = LSM_AUDIT_DATA_NET;
        ad.selinux_audit_data = &sad;
        ad.u.net = &net;
        ad.u.net->netif = skb->skb_iif;
@@ -4583,7 +4583,7 @@ static unsigned int selinux_ip_forward(struct sk_buff *skb, int ifindex,
        if (selinux_skb_peerlbl_sid(skb, family, &peer_sid) != 0)
                return NF_DROP;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_NET);
+       ad.type = LSM_AUDIT_DATA_NET;
        ad.selinux_audit_data = &sad;
        ad.u.net = &net;
        ad.u.net->netif = ifindex;
@@ -4683,7 +4683,7 @@ static unsigned int selinux_ip_postroute_compat(struct sk_buff *skb,
                return NF_ACCEPT;
        sksec = sk->sk_security;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_NET);
+       ad.type = LSM_AUDIT_DATA_NET;
        ad.selinux_audit_data = &sad;
        ad.u.net = &net;
        ad.u.net->netif = ifindex;
@@ -4756,7 +4756,7 @@ static unsigned int selinux_ip_postroute(struct sk_buff *skb, int ifindex,
                secmark_perm = PACKET__SEND;
        }
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_NET);
+       ad.type = LSM_AUDIT_DATA_NET;
        ad.selinux_audit_data = &sad;
        ad.u.net = &net;
        ad.u.net->netif = ifindex;
@@ -4880,7 +4880,7 @@ static int ipc_has_perm(struct kern_ipc_perm *ipc_perms,
 
        isec = ipc_perms->security;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_IPC);
+       ad.type = LSM_AUDIT_DATA_IPC;
        ad.selinux_audit_data = &sad;
        ad.u.ipc_id = ipc_perms->key;
 
@@ -4912,7 +4912,7 @@ static int selinux_msg_queue_alloc_security(struct msg_queue *msq)
 
        isec = msq->q_perm.security;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_IPC);
+       ad.type = LSM_AUDIT_DATA_IPC;
        ad.selinux_audit_data = &sad;
        ad.u.ipc_id = msq->q_perm.key;
 
@@ -4939,7 +4939,7 @@ static int selinux_msg_queue_associate(struct msg_queue *msq, int msqflg)
 
        isec = msq->q_perm.security;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_IPC);
+       ad.type = LSM_AUDIT_DATA_IPC;
        ad.selinux_audit_data = &sad;
        ad.u.ipc_id = msq->q_perm.key;
 
@@ -5001,7 +5001,7 @@ static int selinux_msg_queue_msgsnd(struct msg_queue *msq, struct msg_msg *msg,
                        return rc;
        }
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_IPC);
+       ad.type = LSM_AUDIT_DATA_IPC;
        ad.selinux_audit_data = &sad;
        ad.u.ipc_id = msq->q_perm.key;
 
@@ -5034,7 +5034,7 @@ static int selinux_msg_queue_msgrcv(struct msg_queue *msq, struct msg_msg *msg,
        isec = msq->q_perm.security;
        msec = msg->security;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_IPC);
+       ad.type = LSM_AUDIT_DATA_IPC;
        ad.selinux_audit_data = &sad;
        ad.u.ipc_id = msq->q_perm.key;
 
@@ -5061,7 +5061,7 @@ static int selinux_shm_alloc_security(struct shmid_kernel *shp)
 
        isec = shp->shm_perm.security;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_IPC);
+       ad.type = LSM_AUDIT_DATA_IPC;
        ad.selinux_audit_data = &sad;
        ad.u.ipc_id = shp->shm_perm.key;
 
@@ -5088,7 +5088,7 @@ static int selinux_shm_associate(struct shmid_kernel *shp, int shmflg)
 
        isec = shp->shm_perm.security;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_IPC);
+       ad.type = LSM_AUDIT_DATA_IPC;
        ad.selinux_audit_data = &sad;
        ad.u.ipc_id = shp->shm_perm.key;
 
@@ -5157,7 +5157,7 @@ static int selinux_sem_alloc_security(struct sem_array *sma)
 
        isec = sma->sem_perm.security;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_IPC);
+       ad.type = LSM_AUDIT_DATA_IPC;
        ad.selinux_audit_data = &sad;
        ad.u.ipc_id = sma->sem_perm.key;
 
@@ -5184,7 +5184,7 @@ static int selinux_sem_associate(struct sem_array *sma, int semflg)
 
        isec = sma->sem_perm.security;
 
-       COMMON_AUDIT_DATA_INIT(&ad, LSM_AUDIT_DATA_IPC);
+       ad.type = LSM_AUDIT_DATA_IPC;
        ad.selinux_audit_data = &sad;
        ad.u.ipc_id = sma->sem_perm.key;