History

audit: use inline function to get audit context

Recognizing that the audit context is an internal audit value, use an access function to retrieve the audit context pointer for the task rather than reaching directly into the task struct to get it.

Richard Guy Briggs committed 8 years ago

Commit cdfb6b31 parent f0b752115 files · +77 −69Browse files

Unified · Split

15 files
  1. include/linux/audit.h +12 −3
  2. include/net/xfrm.h +1 −1
  3. kernel/audit.c +2 −4
  4. kernel/audit_watch.c +1 −1
  5. kernel/auditsc.c +32 −34
  6. net/bridge/netfilter/ebtables.c +1 −1
  7. net/core/dev.c +9 −9
  8. net/netfilter/x_tables.c +1 −1
  9. net/netlabel/netlabel_user.c +1 −1
  10. security/integrity/ima/ima_api.c +1 −1
  11. security/integrity/integrity_audit.c +1 −1
  12. security/lsm_audit.c +1 −1
  13. security/selinux/hooks.c +5 −2
  14. security/selinux/selinuxfs.c +3 −3
  15. security/selinux/ss/services.c +6 −6
include/linux/audit.h+12−3
@@ -237,9 +237,14 @@ extern void audit_seccomp_actions_logged(const char *names, · 236 unmodified lines
237237 const char *old_names, int res);
238238 extern void __audit_ptrace(struct task_struct *t);
239239
240+static inline struct audit_context *audit_context(void)
241+{
242+ return current->audit_context;
243+}
244+
240245 static inline bool audit_dummy_context(void)
241246 {
242− void *p = current->audit_context;
247+ void *p = audit_context();
243248 return !p || *(int *)p;
244249 }
245250 static inline void audit_free(struct task_struct *task)
@@ -251,12 +256,12 @@ static inline void audit_syscall_entry(int major, unsigned long a0, · 5 unmodified lines
251256 unsigned long a1, unsigned long a2,
252257 unsigned long a3)
253258 {
254− if (unlikely(current->audit_context))
259+ if (unlikely(audit_context()))
255260 __audit_syscall_entry(major, a0, a1, a2, a3);
256261 }
257262 static inline void audit_syscall_exit(void *pt_regs)
258263 {
259− if (unlikely(current->audit_context)) {
264+ if (unlikely(audit_context())) {
260265 int success = is_syscall_success(pt_regs);
261266 long return_code = regs_return_value(pt_regs);
262267
@@ -464,6 +469,10 @@ static inline bool audit_dummy_context(void) · 201 unmodified lines
464469 {
465470 return true;
466471 }
472+static inline struct audit_context *audit_context(void)
473+{
474+ return NULL;
475+}
467476 static inline struct filename *audit_reusename(const __user char *name)
468477 {
469478 return NULL;
include/net/xfrm.h+1−1
@@ -736,7 +736,7 @@ static inline struct audit_buffer *xfrm_audit_start(const char *op) · 735 unmodified lines
736736
737737 if (audit_enabled == 0)
738738 return NULL;
739− audit_buf = audit_log_start(current->audit_context, GFP_ATOMIC,
739+ audit_buf = audit_log_start(audit_context(), GFP_ATOMIC,
740740 AUDIT_MAC_IPSEC_EVENT);
741741 if (audit_buf == NULL)
742742 return NULL;
kernel/audit.c+2−4
@@ -1099,8 +1099,7 @@ static void audit_log_feature_change(int which, u32 old_feature, u32 new_feature · 1098 unmodified lines
10991099
11001100 if (audit_enabled == AUDIT_OFF)
11011101 return;
1102− ab = audit_log_start(current->audit_context,
1103− GFP_KERNEL, AUDIT_FEATURE_CHANGE);
1102+ ab = audit_log_start(audit_context(), GFP_KERNEL, AUDIT_FEATURE_CHANGE);
11041103 if (!ab)
11051104 return;
11061105 audit_log_task_info(ab, current);
@@ -2317,8 +2316,7 @@ void audit_log_link_denied(const char *operation) · 1210 unmodified lines
23172316 return;
23182317
23192318 /* Generate AUDIT_ANOM_LINK with subject, operation, outcome. */
2320− ab = audit_log_start(current->audit_context, GFP_KERNEL,
2321− AUDIT_ANOM_LINK);
2319+ ab = audit_log_start(audit_context(), GFP_KERNEL, AUDIT_ANOM_LINK);
23222320 if (!ab)
23232321 return;
23242322 audit_log_format(ab, "op=%s", operation);
kernel/audit_watch.c+1−1
@@ -274,7 +274,7 @@ static void audit_update_watch(struct audit_parent *parent, · 273 unmodified lines
274274 /* If the update involves invalidating rules, do the inode-based
275275 * filtering now, so we don't omit records. */
276276 if (invalidating && !audit_dummy_context())
277− audit_filter_inodes(current, current->audit_context);
277+ audit_filter_inodes(current, audit_context());
278278
279279 /* updating ino will likely change which audit_hash_list we
280280 * are on so we need a new watch for the new list */
kernel/auditsc.c+32−34
@@ -1509,8 +1509,7 @@ void __audit_free(struct task_struct *tsk) · 1508 unmodified lines
15091509 void __audit_syscall_entry(int major, unsigned long a1, unsigned long a2,
15101510 unsigned long a3, unsigned long a4)
15111511 {
1512− struct task_struct *tsk = current;
1513− struct audit_context *context = tsk->audit_context;
1512+ struct audit_context *context = audit_context();
15141513 enum audit_state state;
15151514
15161515 if (!audit_enabled || !context)
@@ -1525,7 +1524,7 @@ void __audit_syscall_entry(int major, unsigned long a1, unsigned long a2, · 8 unmodified lines
15251524 context->dummy = !audit_n_rules;
15261525 if (!context->dummy && state == AUDIT_BUILD_CONTEXT) {
15271526 context->prio = 0;
1528− if (auditd_test_task(tsk))
1527+ if (auditd_test_task(current))
15291528 return;
15301529 }
15311530
@@ -1563,12 +1562,12 @@ void __audit_syscall_exit(int success, long return_code) · 31 unmodified lines
15631562 else
15641563 success = AUDITSC_FAILURE;
15651564
1566− context = audit_take_context(tsk, success, return_code);
1565+ context = audit_take_context(current, success, return_code);
15671566 if (!context)
15681567 return;
15691568
15701569 if (context->in_syscall && context->current_state == AUDIT_RECORD_CONTEXT)
1571− audit_log_exit(context, tsk);
1570+ audit_log_exit(context, current);
15721571
15731572 context->in_syscall = 0;
15741573 context->prio = context->state == AUDIT_RECORD_CONTEXT ? ~0ULL : 0;
@@ -1602,7 +1601,7 @@ static inline void handle_one(const struct inode *inode) · 27 unmodified lines
16021601 int count;
16031602 if (likely(!inode->i_fsnotify_marks))
16041603 return;
1605− context = current->audit_context;
1604+ context = audit_context();
16061605 p = context->trees;
16071606 count = context->tree_count;
16081607 rcu_read_lock();
@@ -1633,7 +1632,7 @@ static void handle_path(const struct dentry *dentry) · 24 unmodified lines
16331632 unsigned long seq;
16341633 int count;
16351634
1636− context = current->audit_context;
1635+ context = audit_context();
16371636 p = context->trees;
16381637 count = context->tree_count;
16391638 retry:
@@ -1715,7 +1714,7 @@ static struct audit_names *audit_alloc_name(struct audit_context *context, · 75 unmodified lines
17151714 struct filename *
17161715 __audit_reusename(const __user char *uptr)
17171716 {
1718− struct audit_context *context = current->audit_context;
1717+ struct audit_context *context = audit_context();
17191718 struct audit_names *n;
17201719
17211720 list_for_each_entry(n, &context->names_list, list) {
@@ -1738,7 +1737,7 @@ __audit_reusename(const __user char *uptr) · 16 unmodified lines
17381737 */
17391738 void __audit_getname(struct filename *name)
17401739 {
1741− struct audit_context *context = current->audit_context;
1740+ struct audit_context *context = audit_context();
17421741 struct audit_names *n;
17431742
17441743 if (!context->in_syscall)
@@ -1766,7 +1765,7 @@ void __audit_getname(struct filename *name) · 21 unmodified lines
17661765 void __audit_inode(struct filename *name, const struct dentry *dentry,
17671766 unsigned int flags)
17681767 {
1769− struct audit_context *context = current->audit_context;
1768+ struct audit_context *context = audit_context();
17701769 struct inode *inode = d_backing_inode(dentry);
17711770 struct audit_names *n;
17721771 bool parent = flags & AUDIT_INODE_PARENT;
@@ -1865,7 +1864,7 @@ void __audit_inode_child(struct inode *parent, · 92 unmodified lines
18651864 const struct dentry *dentry,
18661865 const unsigned char type)
18671866 {
1868− struct audit_context *context = current->audit_context;
1867+ struct audit_context *context = audit_context();
18691868 struct inode *inode = d_backing_inode(dentry);
18701869 const char *dname = dentry->d_name.name;
18711870 struct audit_names *n, *found_parent = NULL, *found_child = NULL;
@@ -2084,7 +2083,7 @@ out: · 212 unmodified lines
20842083 */
20852084 void __audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr)
20862085 {
2087− struct audit_context *context = current->audit_context;
2086+ struct audit_context *context = audit_context();
20882087
20892088 if (attr)
20902089 memcpy(&context->mq_open.attr, attr, sizeof(struct mq_attr));
@@ -2108,7 +2107,7 @@ void __audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr) · 17 unmodified lines
21082107 void __audit_mq_sendrecv(mqd_t mqdes, size_t msg_len, unsigned int msg_prio,
21092108 const struct timespec64 *abs_timeout)
21102109 {
2111− struct audit_context *context = current->audit_context;
2110+ struct audit_context *context = audit_context();
21122111 struct timespec64 *p = &context->mq_sendrecv.abs_timeout;
21132112
21142113 if (abs_timeout)
@@ -2132,7 +2131,7 @@ void __audit_mq_sendrecv(mqd_t mqdes, size_t msg_len, unsigned int msg_prio, · 17 unmodified lines
21322131
21332132 void __audit_mq_notify(mqd_t mqdes, const struct sigevent *notification)
21342133 {
2135− struct audit_context *context = current->audit_context;
2134+ struct audit_context *context = audit_context();
21362135
21372136 if (notification)
21382137 context->mq_notify.sigev_signo = notification->sigev_signo;
@@ -2151,7 +2150,7 @@ void __audit_mq_notify(mqd_t mqdes, const struct sigevent *notification) · 12 unmodified lines
21512150 */
21522151 void __audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat)
21532152 {
2154− struct audit_context *context = current->audit_context;
2153+ struct audit_context *context = audit_context();
21552154 context->mq_getsetattr.mqdes = mqdes;
21562155 context->mq_getsetattr.mqstat = *mqstat;
21572156 context->type = AUDIT_MQ_GETSETATTR;
@@ -2164,7 +2163,7 @@ void __audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat) · 6 unmodified lines
21642163 */
21652164 void __audit_ipc_obj(struct kern_ipc_perm *ipcp)
21662165 {
2167− struct audit_context *context = current->audit_context;
2166+ struct audit_context *context = audit_context();
21682167 context->ipc.uid = ipcp->uid;
21692168 context->ipc.gid = ipcp->gid;
21702169 context->ipc.mode = ipcp->mode;
@@ -2184,7 +2183,7 @@ void __audit_ipc_obj(struct kern_ipc_perm *ipcp) · 13 unmodified lines
21842183 */
21852184 void __audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, umode_t mode)
21862185 {
2187− struct audit_context *context = current->audit_context;
2186+ struct audit_context *context = audit_context();
21882187
21892188 context->ipc.qbytes = qbytes;
21902189 context->ipc.perm_uid = uid;
@@ -2195,7 +2194,7 @@ void __audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, umode_t mo · 4 unmodified lines
21952194
21962195 void __audit_bprm(struct linux_binprm *bprm)
21972196 {
2198− struct audit_context *context = current->audit_context;
2197+ struct audit_context *context = audit_context();
21992198
22002199 context->type = AUDIT_EXECVE;
22012200 context->execve.argc = bprm->argc;
@@ -2210,7 +2209,7 @@ void __audit_bprm(struct linux_binprm *bprm) · 8 unmodified lines
22102209 */
22112210 int __audit_socketcall(int nargs, unsigned long *args)
22122211 {
2213− struct audit_context *context = current->audit_context;
2212+ struct audit_context *context = audit_context();
22142213
22152214 if (nargs <= 0 || nargs > AUDITSC_ARGS || !args)
22162215 return -EINVAL;
@@ -2228,7 +2227,7 @@ int __audit_socketcall(int nargs, unsigned long *args) · 11 unmodified lines
22282227 */
22292228 void __audit_fd_pair(int fd1, int fd2)
22302229 {
2231− struct audit_context *context = current->audit_context;
2230+ struct audit_context *context = audit_context();
22322231 context->fds[0] = fd1;
22332232 context->fds[1] = fd2;
22342233 }
@@ -2242,7 +2241,7 @@ void __audit_fd_pair(int fd1, int fd2) · 7 unmodified lines
22422241 */
22432242 int __audit_sockaddr(int len, void *a)
22442243 {
2245− struct audit_context *context = current->audit_context;
2244+ struct audit_context *context = audit_context();
22462245
22472246 if (!context->sockaddr) {
22482247 void *p = kmalloc(sizeof(struct sockaddr_storage), GFP_KERNEL);
@@ -2258,7 +2257,7 @@ int __audit_sockaddr(int len, void *a) · 9 unmodified lines
22582257
22592258 void __audit_ptrace(struct task_struct *t)
22602259 {
2261− struct audit_context *context = current->audit_context;
2260+ struct audit_context *context = audit_context();
22622261
22632262 context->target_pid = task_tgid_nr(t);
22642263 context->target_auid = audit_get_loginuid(t);
@@ -2279,19 +2278,18 @@ void __audit_ptrace(struct task_struct *t) · 14 unmodified lines
22792278 int audit_signal_info(int sig, struct task_struct *t)
22802279 {
22812280 struct audit_aux_data_pids *axp;
2282− struct task_struct *tsk = current;
2283− struct audit_context *ctx = tsk->audit_context;
2281+ struct audit_context *ctx = audit_context();
22842282 kuid_t uid = current_uid(), t_uid = task_uid(t);
22852283
22862284 if (auditd_test_task(t) &&
22872285 (sig == SIGTERM || sig == SIGHUP ||
22882286 sig == SIGUSR1 || sig == SIGUSR2)) {
2289− audit_sig_pid = task_tgid_nr(tsk);
2290− if (uid_valid(tsk->loginuid))
2291− audit_sig_uid = tsk->loginuid;
2287+ audit_sig_pid = task_tgid_nr(current);
2288+ if (uid_valid(current->loginuid))
2289+ audit_sig_uid = current->loginuid;
22922290 else
22932291 audit_sig_uid = uid;
2294− security_task_getsecid(tsk, &audit_sig_sid);
2292+ security_task_getsecid(current, &audit_sig_sid);
22952293 }
22962294
22972295 if (!audit_signals || audit_dummy_context())
@@ -2347,7 +2345,7 @@ int __audit_log_bprm_fcaps(struct linux_binprm *bprm, · 49 unmodified lines
23472345 const struct cred *new, const struct cred *old)
23482346 {
23492347 struct audit_aux_data_bprm_fcaps *ax;
2350− struct audit_context *context = current->audit_context;
2348+ struct audit_context *context = audit_context();
23512349 struct cpu_vfs_cap_data vcaps;
23522350
23532351 ax = kmalloc(sizeof(*ax), GFP_KERNEL);
@@ -2387,7 +2385,7 @@ int __audit_log_bprm_fcaps(struct linux_binprm *bprm, · 33 unmodified lines
23872385 */
23882386 void __audit_log_capset(const struct cred *new, const struct cred *old)
23892387 {
2390− struct audit_context *context = current->audit_context;
2388+ struct audit_context *context = audit_context();
23912389 context->capset.pid = task_tgid_nr(current);
23922390 context->capset.cap.effective = new->cap_effective;
23932391 context->capset.cap.inheritable = new->cap_effective;
@@ -2398,7 +2396,7 @@ void __audit_log_capset(const struct cred *new, const struct cred *old) · 4 unmodified lines
23982396
23992397 void __audit_mmap_fd(int fd, int flags)
24002398 {
2401− struct audit_context *context = current->audit_context;
2399+ struct audit_context *context = audit_context();
24022400 context->mmap.fd = fd;
24032401 context->mmap.flags = flags;
24042402 context->type = AUDIT_MMAP;
@@ -2406,7 +2404,7 @@ void __audit_mmap_fd(int fd, int flags) · 1 unmodified line
24062404
24072405 void __audit_log_kern_module(char *name)
24082406 {
2409− struct audit_context *context = current->audit_context;
2407+ struct audit_context *context = audit_context();
24102408
24112409 context->module.name = kmalloc(strlen(name) + 1, GFP_KERNEL);
24122410 strcpy(context->module.name, name);
@@ -2415,7 +2413,7 @@ void __audit_log_kern_module(char *name) · 2 unmodified lines
24152413
24162414 void __audit_fanotify(unsigned int response)
24172415 {
2418− audit_log(current->audit_context, GFP_KERNEL,
2416+ audit_log(audit_context(), GFP_KERNEL,
24192417 AUDIT_FANOTIFY, "resp=%u", response);
24202418 }
24212419
@@ -2514,7 +2512,7 @@ void audit_seccomp_actions_logged(const char *names, const char *old_names, · 92 unmodified lines
25142512
25152513 struct list_head *audit_killed_trees(void)
25162514 {
2517− struct audit_context *ctx = current->audit_context;
2515+ struct audit_context *ctx = audit_context();
25182516 if (likely(!ctx || !ctx->in_syscall))
25192517 return NULL;
25202518 return &ctx->killed_trees;
net/bridge/netfilter/ebtables.c+1−1
@@ -1062,7 +1062,7 @@ static int do_replace_finish(struct net *net, struct ebt_replace *repl, · 1061 unmodified lines
10621062
10631063 #ifdef CONFIG_AUDIT
10641064 if (audit_enabled) {
1065− audit_log(current->audit_context, GFP_KERNEL,
1065+ audit_log(audit_context(), GFP_KERNEL,
10661066 AUDIT_NETFILTER_CFG,
10671067 "table=%s family=%u entries=%u",
10681068 repl->name, AF_BRIDGE, repl->nentries);
net/core/dev.c+9−9
@@ -6749,15 +6749,15 @@ static int __dev_set_promiscuity(struct net_device *dev, int inc, bool notify) · 6748 unmodified lines
67496749 dev->flags & IFF_PROMISC ? "entered" : "left");
67506750 if (audit_enabled) {
67516751 current_uid_gid(&uid, &gid);
6752− audit_log(current->audit_context, GFP_ATOMIC,
6753− AUDIT_ANOM_PROMISCUOUS,
6754− "dev=%s prom=%d old_prom=%d auid=%u uid=%u gid=%u ses=%u",
6755− dev->name, (dev->flags & IFF_PROMISC),
6756− (old_flags & IFF_PROMISC),
6757− from_kuid(&init_user_ns, audit_get_loginuid(current)),
6758− from_kuid(&init_user_ns, uid),
6759− from_kgid(&init_user_ns, gid),
6760− audit_get_sessionid(current));
6752+ audit_log(audit_context(), GFP_ATOMIC,
6753+ AUDIT_ANOM_PROMISCUOUS,
6754+ "dev=%s prom=%d old_prom=%d auid=%u uid=%u gid=%u ses=%u",
6755+ dev->name, (dev->flags & IFF_PROMISC),
6756+ (old_flags & IFF_PROMISC),
6757+ from_kuid(&init_user_ns, audit_get_loginuid(current)),
6758+ from_kuid(&init_user_ns, uid),
6759+ from_kgid(&init_user_ns, gid),
6760+ audit_get_sessionid(current));
67616761 }
67626762
67636763 dev_change_rx_flags(dev, IFF_PROMISC);
net/netfilter/x_tables.c+1−1
@@ -1414,7 +1414,7 @@ xt_replace_table(struct xt_table *table, · 1413 unmodified lines
14141414
14151415 #ifdef CONFIG_AUDIT
14161416 if (audit_enabled) {
1417− audit_log(current->audit_context, GFP_KERNEL,
1417+ audit_log(audit_context(), GFP_KERNEL,
14181418 AUDIT_NETFILTER_CFG,
14191419 "table=%s family=%u entries=%u",
14201420 table->name, table->af, private->number);
net/netlabel/netlabel_user.c+1−1
@@ -104,7 +104,7 @@ struct audit_buffer *netlbl_audit_start_common(int type, · 103 unmodified lines
104104 if (audit_enabled == 0)
105105 return NULL;
106106
107− audit_buf = audit_log_start(current->audit_context, GFP_ATOMIC, type);
107+ audit_buf = audit_log_start(audit_context(), GFP_ATOMIC, type);
108108 if (audit_buf == NULL)
109109 return NULL;
110110
security/integrity/ima/ima_api.c+1−1
@@ -326,7 +326,7 @@ void ima_audit_measurement(struct integrity_iint_cache *iint, · 325 unmodified lines
326326 hex_byte_pack(hash + (i * 2), iint->ima_hash->digest[i]);
327327 hash[i * 2] = '\0';
328328
329− ab = audit_log_start(current->audit_context, GFP_KERNEL,
329+ ab = audit_log_start(audit_context(), GFP_KERNEL,
330330 AUDIT_INTEGRITY_RULE);
331331 if (!ab)
332332 goto out;
security/integrity/integrity_audit.c+1−1
@@ -38,7 +38,7 @@ void integrity_audit_msg(int audit_msgno, struct inode *inode, · 37 unmodified lines
3838 if (!integrity_audit_info && audit_info == 1) /* Skip info messages */
3939 return;
4040
41− ab = audit_log_start(current->audit_context, GFP_KERNEL, audit_msgno);
41+ ab = audit_log_start(audit_context(), GFP_KERNEL, audit_msgno);
4242 audit_log_format(ab, "pid=%d uid=%u auid=%u ses=%u",
4343 task_pid_nr(current),
4444 from_kuid(&init_user_ns, current_cred()->uid),
security/lsm_audit.c+1−1
@@ -447,7 +447,7 @@ void common_lsm_audit(struct common_audit_data *a, · 446 unmodified lines
447447 if (a == NULL)
448448 return;
449449 /* we use GFP_ATOMIC so we won't sleep */
450− ab = audit_log_start(current->audit_context, GFP_ATOMIC | __GFP_NOWARN,
450+ ab = audit_log_start(audit_context(), GFP_ATOMIC | __GFP_NOWARN,
451451 AUDIT_AVC);
452452
453453 if (ab == NULL)
security/selinux/hooks.c+5−2
@@ -3294,7 +3294,8 @@ static int selinux_inode_setxattr(struct dentry *dentry, const char *name, · 3293 unmodified lines
32943294 } else {
32953295 audit_size = 0;
32963296 }
3297− ab = audit_log_start(current->audit_context, GFP_ATOMIC, AUDIT_SELINUX_ERR);
3297+ ab = audit_log_start(audit_context(),
3298+ GFP_ATOMIC, AUDIT_SELINUX_ERR);
32983299 audit_log_format(ab, "op=setxattr invalid_context=");
32993300 audit_log_n_untrustedstring(ab, value, audit_size);
33003301 audit_log_end(ab);
@@ -6431,7 +6432,9 @@ static int selinux_setprocattr(const char *name, void *value, size_t size) · 3130 unmodified lines
64316432 audit_size = size - 1;
64326433 else
64336434 audit_size = size;
6434− ab = audit_log_start(current->audit_context, GFP_ATOMIC, AUDIT_SELINUX_ERR);
6435+ ab = audit_log_start(audit_context(),
6436+ GFP_ATOMIC,
6437+ AUDIT_SELINUX_ERR);
64356438 audit_log_format(ab, "op=fscreate invalid_context=");
64366439 audit_log_n_untrustedstring(ab, value, audit_size);
64376440 audit_log_end(ab);
security/selinux/selinuxfs.c+3−3
@@ -167,7 +167,7 @@ static ssize_t sel_write_enforce(struct file *file, const char __user *buf, · 166 unmodified lines
167167 NULL);
168168 if (length)
169169 goto out;
170− audit_log(current->audit_context, GFP_KERNEL, AUDIT_MAC_STATUS,
170+ audit_log(audit_context(), GFP_KERNEL, AUDIT_MAC_STATUS,
171171 "enforcing=%d old_enforcing=%d auid=%u ses=%u",
172172 new_value, old_value,
173173 from_kuid(&init_user_ns, audit_get_loginuid(current)),
@@ -299,7 +299,7 @@ static ssize_t sel_write_disable(struct file *file, const char __user *buf, · 125 unmodified lines
299299 length = selinux_disable(fsi->state);
300300 if (length)
301301 goto out;
302− audit_log(current->audit_context, GFP_KERNEL, AUDIT_MAC_STATUS,
302+ audit_log(audit_context(), GFP_KERNEL, AUDIT_MAC_STATUS,
303303 "selinux=0 auid=%u ses=%u",
304304 from_kuid(&init_user_ns, audit_get_loginuid(current)),
305305 audit_get_sessionid(current));
@@ -575,7 +575,7 @@ static ssize_t sel_write_load(struct file *file, const char __user *buf, · 269 unmodified lines
575575 length = count;
576576
577577 out1:
578− audit_log(current->audit_context, GFP_KERNEL, AUDIT_MAC_POLICY_LOAD,
578+ audit_log(audit_context(), GFP_KERNEL, AUDIT_MAC_POLICY_LOAD,
579579 "policy loaded auid=%u ses=%u",
580580 from_kuid(&init_user_ns, audit_get_loginuid(current)),
581581 audit_get_sessionid(current));
security/selinux/ss/services.c+6−6
@@ -501,7 +501,7 @@ static void security_dump_masked_av(struct policydb *policydb, · 500 unmodified lines
501501 goto out;
502502
503503 /* audit a message */
504− ab = audit_log_start(current->audit_context,
504+ ab = audit_log_start(audit_context(),
505505 GFP_ATOMIC, AUDIT_SELINUX_ERR);
506506 if (!ab)
507507 goto out;
@@ -743,7 +743,7 @@ static int security_validtrans_handle_fail(struct selinux_state *state, · 235 unmodified lines
743743 goto out;
744744 if (context_struct_to_string(p, tcontext, &t, &tlen))
745745 goto out;
746− audit_log(current->audit_context, GFP_ATOMIC, AUDIT_SELINUX_ERR,
746+ audit_log(audit_context(), GFP_ATOMIC, AUDIT_SELINUX_ERR,
747747 "op=security_validate_transition seresult=denied"
748748 " oldcontext=%s newcontext=%s taskcontext=%s tclass=%s",
749749 o, n, t, sym_name(p, SYM_CLASSES, tclass-1));
@@ -929,7 +929,7 @@ int security_bounded_transition(struct selinux_state *state, · 179 unmodified lines
929929 &old_name, &length) &&
930930 !context_struct_to_string(policydb, new_context,
931931 &new_name, &length)) {
932− audit_log(current->audit_context,
932+ audit_log(audit_context(),
933933 GFP_ATOMIC, AUDIT_SELINUX_ERR,
934934 "op=security_bounded_transition "
935935 "seresult=denied "
@@ -1586,7 +1586,7 @@ static int compute_sid_handle_invalid_context( · 650 unmodified lines
15861586 goto out;
15871587 if (context_struct_to_string(policydb, newcontext, &n, &nlen))
15881588 goto out;
1589− audit_log(current->audit_context, GFP_ATOMIC, AUDIT_SELINUX_ERR,
1589+ audit_log(audit_context(), GFP_ATOMIC, AUDIT_SELINUX_ERR,
15901590 "op=security_compute_sid invalid_context=%s"
15911591 " scontext=%s"
15921592 " tcontext=%s"
@@ -2882,7 +2882,7 @@ int security_set_bools(struct selinux_state *state, int len, int *values) · 1289 unmodified lines
28822882
28832883 for (i = 0; i < len; i++) {
28842884 if (!!values[i] != policydb->bool_val_to_struct[i]->state) {
2885− audit_log(current->audit_context, GFP_ATOMIC,
2885+ audit_log(audit_context(), GFP_ATOMIC,
28862886 AUDIT_MAC_CONFIG_CHANGE,
28872887 "bool=%s val=%d old_val=%d auid=%u ses=%u",
28882888 sym_name(policydb, SYM_BOOLS, i),
@@ -3025,7 +3025,7 @@ int security_sid_mls_copy(struct selinux_state *state, · 136 unmodified lines
30253025 if (rc) {
30263026 if (!context_struct_to_string(policydb, &newcon, &s,
30273027 &len)) {
3028− audit_log(current->audit_context,
3028+ audit_log(audit_context(),
30293029 GFP_ATOMIC, AUDIT_SELINUX_ERR,
30303030 "op=security_sid_mls_copy "
30313031 "invalid_context=%s", s);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t