https://github.com/torvalds/linux
Revision 290638a52a808d658bd04b746b3ca46886c157e0 authored by John Johansen on 16 August 2017, 12:40:49 UTC, committed by John Johansen on 22 September 2017, 20:00:58 UTC
There is a race when null- profile is being created between the
initial lookup/creation of the profile and lock/addition of the
profile. This could result in multiple version of a profile being
added to the list which need to be removed/replaced.

Since these are learning profile their is no affect on mediation.

Signed-off-by: John Johansen <john.johansen@canonical.com>
1 parent d07881d
Raw File
Tip revision: 290638a52a808d658bd04b746b3ca46886c157e0 authored by John Johansen on 16 August 2017, 12:40:49 UTC
apparmor: fix race condition in null profile creation
Tip revision: 290638a
compat_audit.c
#include <linux/init.h>
#include <linux/types.h>
#include <asm/unistd32.h>

unsigned compat_dir_class[] = {
#include <asm-generic/audit_dir_write.h>
~0U
};

unsigned compat_read_class[] = {
#include <asm-generic/audit_read.h>
~0U
};

unsigned compat_write_class[] = {
#include <asm-generic/audit_write.h>
~0U
};

unsigned compat_chattr_class[] = {
#include <asm-generic/audit_change_attr.h>
~0U
};

unsigned compat_signal_class[] = {
#include <asm-generic/audit_signal.h>
~0U
};

int audit_classify_compat_syscall(int abi, unsigned syscall)
{
	switch (syscall) {
#ifdef __NR_open
	case __NR_open:
		return 2;
#endif
#ifdef __NR_openat
	case __NR_openat:
		return 3;
#endif
#ifdef __NR_socketcall
	case __NR_socketcall:
		return 4;
#endif
	case __NR_execve:
		return 5;
	default:
		return 1;
	}
}
back to top