Commit c3f27ccd authored by John Johansen's avatar John Johansen
Browse files

apparmor: drop in_atomic flag in common_mmap, and common_file_perm



with the previous changes to mmap the in_atomic flag is now always
false, so drop it.

Suggested-by: default avatarTyler Hicks <code@tyhicks.com>
Reviewed-by: default avatarGeorgia Garcia <georgia.garcia@canonical.com>
Signed-off-by: default avatarJohn Johansen <john.johansen@canonical.com>
parent 48d5268e
Loading
Loading
Loading
Loading
+9 −12
Original line number Diff line number Diff line
@@ -520,8 +520,7 @@ static void apparmor_file_free_security(struct file *file)
		aa_put_label(rcu_access_pointer(ctx->label));
}

static int common_file_perm(const char *op, struct file *file, u32 mask,
			    bool in_atomic)
static int common_file_perm(const char *op, struct file *file, u32 mask)
{
	struct aa_label *label;
	int error = 0;
@@ -532,7 +531,7 @@ static int common_file_perm(const char *op, struct file *file, u32 mask,
		return -EACCES;

	label = __begin_current_label_crit_section(&needput);
	error = aa_file_perm(op, current_cred(), label, file, mask, in_atomic);
	error = aa_file_perm(op, current_cred(), label, file, mask, false);
	__end_current_label_crit_section(label, needput);

	return error;
@@ -540,13 +539,12 @@ static int common_file_perm(const char *op, struct file *file, u32 mask,

static int apparmor_file_receive(struct file *file)
{
	return common_file_perm(OP_FRECEIVE, file, aa_map_file_to_perms(file),
				false);
	return common_file_perm(OP_FRECEIVE, file, aa_map_file_to_perms(file));
}

static int apparmor_file_permission(struct file *file, int mask)
{
	return common_file_perm(OP_FPERM, file, mask, false);
	return common_file_perm(OP_FPERM, file, mask);
}

static int apparmor_file_lock(struct file *file, unsigned int cmd)
@@ -556,11 +554,11 @@ static int apparmor_file_lock(struct file *file, unsigned int cmd)
	if (cmd == F_WRLCK)
		mask |= MAY_WRITE;

	return common_file_perm(OP_FLOCK, file, mask, false);
	return common_file_perm(OP_FLOCK, file, mask);
}

static int common_mmap(const char *op, struct file *file, unsigned long prot,
		       unsigned long flags, bool in_atomic)
		       unsigned long flags)
{
	int mask = 0;

@@ -578,21 +576,20 @@ static int common_mmap(const char *op, struct file *file, unsigned long prot,
	if (prot & PROT_EXEC)
		mask |= AA_EXEC_MMAP;

	return common_file_perm(op, file, mask, in_atomic);
	return common_file_perm(op, file, mask);
}

static int apparmor_mmap_file(struct file *file, unsigned long reqprot,
			      unsigned long prot, unsigned long flags)
{
	return common_mmap(OP_FMMAP, file, prot, flags, false);
	return common_mmap(OP_FMMAP, file, prot, flags);
}

static int apparmor_file_mprotect(struct vm_area_struct *vma,
				  unsigned long reqprot, unsigned long prot)
{
	return common_mmap(OP_FMPROT, vma->vm_file, prot,
			   !(vma->vm_flags & VM_SHARED) ? MAP_PRIVATE : 0,
			   false);
			   !(vma->vm_flags & VM_SHARED) ? MAP_PRIVATE : 0);
}

#ifdef CONFIG_IO_URING