Merge branch 'stable-4.11' of git://git.infradead.org/users/pcmoore/audit
Pull audit cleanup from Paul Moore: "A week later than I had hoped, but as promised, here is the audit uninline-fix we talked about during the last audit pull request. The patch is slightly different than what we originally discussed as it made more sense to keep the audit_signal_info() function in auditsc.c rather than move it and bunch of other related variables/definitions into audit.c/audit.h. At some point in the future I need to look at how the audit code is organized across kernel/audit*, I suspect we could do things a bit better, but it doesn't seem like a -rc release is a good place for that ;) Regardless, this patch passes our tests without problem and looks good for v4.11" * 'stable-4.11' of git://git.infradead.org/users/pcmoore/audit: audit: move audit_signal_info() into kernel/auditsc.c
This commit is contained in:
commit
62fedca5ce
|
@ -333,13 +333,7 @@ extern u32 audit_sig_sid;
|
||||||
extern int audit_filter(int msgtype, unsigned int listtype);
|
extern int audit_filter(int msgtype, unsigned int listtype);
|
||||||
|
|
||||||
#ifdef CONFIG_AUDITSYSCALL
|
#ifdef CONFIG_AUDITSYSCALL
|
||||||
extern int __audit_signal_info(int sig, struct task_struct *t);
|
extern int audit_signal_info(int sig, struct task_struct *t);
|
||||||
static inline int audit_signal_info(int sig, struct task_struct *t)
|
|
||||||
{
|
|
||||||
if (auditd_test_task(t) || (audit_signals && !audit_dummy_context()))
|
|
||||||
return __audit_signal_info(sig, t);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
extern void audit_filter_inodes(struct task_struct *, struct audit_context *);
|
extern void audit_filter_inodes(struct task_struct *, struct audit_context *);
|
||||||
extern struct list_head *audit_killed_trees(void);
|
extern struct list_head *audit_killed_trees(void);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -2249,26 +2249,27 @@ void __audit_ptrace(struct task_struct *t)
|
||||||
* If the audit subsystem is being terminated, record the task (pid)
|
* If the audit subsystem is being terminated, record the task (pid)
|
||||||
* and uid that is doing that.
|
* and uid that is doing that.
|
||||||
*/
|
*/
|
||||||
int __audit_signal_info(int sig, struct task_struct *t)
|
int audit_signal_info(int sig, struct task_struct *t)
|
||||||
{
|
{
|
||||||
struct audit_aux_data_pids *axp;
|
struct audit_aux_data_pids *axp;
|
||||||
struct task_struct *tsk = current;
|
struct task_struct *tsk = current;
|
||||||
struct audit_context *ctx = tsk->audit_context;
|
struct audit_context *ctx = tsk->audit_context;
|
||||||
kuid_t uid = current_uid(), t_uid = task_uid(t);
|
kuid_t uid = current_uid(), t_uid = task_uid(t);
|
||||||
|
|
||||||
if (auditd_test_task(t)) {
|
if (auditd_test_task(t) &&
|
||||||
if (sig == SIGTERM || sig == SIGHUP || sig == SIGUSR1 || sig == SIGUSR2) {
|
(sig == SIGTERM || sig == SIGHUP ||
|
||||||
audit_sig_pid = task_tgid_nr(tsk);
|
sig == SIGUSR1 || sig == SIGUSR2)) {
|
||||||
if (uid_valid(tsk->loginuid))
|
audit_sig_pid = task_tgid_nr(tsk);
|
||||||
audit_sig_uid = tsk->loginuid;
|
if (uid_valid(tsk->loginuid))
|
||||||
else
|
audit_sig_uid = tsk->loginuid;
|
||||||
audit_sig_uid = uid;
|
else
|
||||||
security_task_getsecid(tsk, &audit_sig_sid);
|
audit_sig_uid = uid;
|
||||||
}
|
security_task_getsecid(tsk, &audit_sig_sid);
|
||||||
if (!audit_signals || audit_dummy_context())
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!audit_signals || audit_dummy_context())
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* optimize the common case by putting first signal recipient directly
|
/* optimize the common case by putting first signal recipient directly
|
||||||
* in audit_context */
|
* in audit_context */
|
||||||
if (!ctx->target_pid) {
|
if (!ctx->target_pid) {
|
||||||
|
|
Loading…
Reference in New Issue