History

audit: use inline function to set audit context

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

Richard Guy Briggs committed 8 years ago

Commit c0b0ae81 parent cdfb6b33 files · +11 −5Browse files

Unified · Split

3 files
  1. include/linux/audit.h +7 −0
  2. kernel/auditsc.c +3 −4
  3. kernel/fork.c +1 −1
include/linux/audit.h+7−0
@@ -237,6 +237,11 @@ extern void audit_seccomp_actions_logged(const char *names, · 236 unmodified lines
237 const char *old_names, int res);237 const char *old_names, int res);
238extern void __audit_ptrace(struct task_struct *t);238extern void __audit_ptrace(struct task_struct *t);
239 239
240static inline void audit_set_context(struct task_struct *task, struct audit_context *ctx)
241{
242 task->audit_context = ctx;
243}
244
240static inline struct audit_context *audit_context(void)245static inline struct audit_context *audit_context(void)
241{246{
242 return current->audit_context;247 return current->audit_context;
@@ -469,6 +474,8 @@ static inline bool audit_dummy_context(void) · 226 unmodified lines
469{474{
470 return true;475 return true;
471}476}
477static inline void audit_set_context(struct task_struct *task, struct audit_context *ctx)
478{ }
472static inline struct audit_context *audit_context(void)479static inline struct audit_context *audit_context(void)
473{480{
474 return NULL;481 return NULL;
kernel/auditsc.c+3−4
@@ -865,7 +865,7 @@ static inline struct audit_context *audit_take_context(struct task_struct *tsk, · 864 unmodified lines
865 audit_filter_inodes(tsk, context);865 audit_filter_inodes(tsk, context);
866 }866 }
867 867
868 tsk->audit_context = NULL;868 audit_set_context(tsk, NULL);
869 return context;869 return context;
870}870}
871 871
@@ -952,7 +952,7 @@ int audit_alloc(struct task_struct *tsk) · 80 unmodified lines
952 }952 }
953 context->filterkey = key;953 context->filterkey = key;
954 954
955 tsk->audit_context = context;955 audit_set_context(tsk, context);
956 set_tsk_thread_flag(tsk, TIF_SYSCALL_AUDIT);956 set_tsk_thread_flag(tsk, TIF_SYSCALL_AUDIT);
957 return 0;957 return 0;
958}958}
@@ -1554,7 +1554,6 @@ void __audit_syscall_entry(int major, unsigned long a1, unsigned long a2, · 595 unmodified lines
1554 */1554 */
1555void __audit_syscall_exit(int success, long return_code)1555void __audit_syscall_exit(int success, long return_code)
1556{1556{
1557 struct task_struct *tsk = current;
1558 struct audit_context *context;1557 struct audit_context *context;
1559 1558
1560 if (success)1559 if (success)
@@ -1589,7 +1588,7 @@ void __audit_syscall_exit(int success, long return_code) · 28 unmodified lines
1589 kfree(context->filterkey);1588 kfree(context->filterkey);
1590 context->filterkey = NULL;1589 context->filterkey = NULL;
1591 }1590 }
1592 tsk->audit_context = context;1591 audit_set_context(current, context);
1593}1592}
1594 1593
1595static inline void handle_one(const struct inode *inode)1594static inline void handle_one(const struct inode *inode)
kernel/fork.c+1−1
@@ -1713,7 +1713,7 @@ static __latent_entropy struct task_struct *copy_process( · 1712 unmodified lines
1713 p->start_time = ktime_get_ns();1713 p->start_time = ktime_get_ns();
1714 p->real_start_time = ktime_get_boot_ns();1714 p->real_start_time = ktime_get_boot_ns();
1715 p->io_context = NULL;1715 p->io_context = NULL;
1716 p->audit_context = NULL;1716 audit_set_context(p, NULL);
1717 cgroup_fork(p);1717 cgroup_fork(p);
1718#ifdef CONFIG_NUMA1718#ifdef CONFIG_NUMA
1719 p->mempolicy = mpol_dup(p->mempolicy);1719 p->mempolicy = mpol_dup(p->mempolicy);

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