if (!vma->vm_file && (prot & PROT_EXEC) && vma->vm_start <= vma->vm_mm->start_stack && vma->vm_end >= vma->vm_mm->start_stack) { /* Attempt to make the process stack executable. * This has an additional execstack check. */ rc = task_has_perm(current, current, PROCESS__EXECSTACK); if (rc) return rc; } 
static int selinux_file_mprotect(struct vm_area_struct *vma,				 unsigned long reqprot,				 unsigned long prot){	int rc;	rc = secondary_ops->file_mprotect(vma, reqprot, prot);	if (rc)		return rc;	if (selinux_checkreqprot)		prot = reqprot;#ifndef CONFIG_PPC32	if (vma->vm_file != NULL && vma->anon_vma != NULL && (prot & PROT_EXEC)) {		/*		 * We are making executable a file mapping that has		 * had some COW done. Since pages might have been written,		 * check ability to execute the possibly modified content.		 * This typically should only occur for text relocations.		 */		int rc = file_has_perm(current, vma->vm_file, FILE__EXECMOD);		if (rc)			return rc;	}#endif	return file_map_prot_check(vma->vm_file, prot, vma->vm_flags&VM_SHARED);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/6b9921976f0861e04828b3aff66696c1f3fd900d/hooks.c/buggy/security/selinux/hooks.c