vma->vm_flags = VM_READ|VM_EXEC|VM_MAYREAD|VM_MAYEXEC|VM_MAYEXEC|VM_MAYWRITE; 
vma->vm_flags = VM_READ|VM_EXEC|VM_MAYREAD|VM_MAYEXEC|VM_MAYWRITE; 
int syscall32_setup_pages(struct linux_binprm *bprm, int exstack){	int npages = (VSYSCALL32_END - VSYSCALL32_BASE) >> PAGE_SHIFT;	struct vm_area_struct *vma;	struct mm_struct *mm = current->mm;	int ret;	vma = kmem_cache_alloc(vm_area_cachep, SLAB_KERNEL);	if (!vma)		return -ENOMEM;	if (security_vm_enough_memory(npages)) {		kmem_cache_free(vm_area_cachep, vma);		return -ENOMEM;	}	memset(vma, 0, sizeof(struct vm_area_struct));	/* Could randomize here */	vma->vm_start = VSYSCALL32_BASE;	vma->vm_end = VSYSCALL32_END;	/* MAYWRITE to allow gdb to COW and set breakpoints */	vma->vm_flags = VM_READ|VM_EXEC|VM_MAYREAD|VM_MAYEXEC|VM_MAYEXEC|VM_MAYWRITE;	vma->vm_flags |= mm->def_flags;	vma->vm_page_prot = protection_map[vma->vm_flags & 7];	vma->vm_ops = &syscall32_vm_ops;	vma->vm_mm = mm;	down_write(&mm->mmap_sem);	if ((ret = insert_vm_struct(mm, vma))) {		up_write(&mm->mmap_sem);		kmem_cache_free(vm_area_cachep, vma);		return ret;	}	mm->total_vm += npages;	up_write(&mm->mmap_sem);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2fd4ef85e0db9ed75c98e13953257a967ea55e03/syscall32.c/buggy/arch/x86_64/ia32/syscall32.c