PERFORCE change 1200166 for review
John Baldwin
jhb at FreeBSD.org
Fri Sep 12 18:42:41 UTC 2014
http://p4web.freebsd.org/@@1200166?ac=10
Change 1200166 by jhb at jhb_ralph on 2014/09/12 18:42:05
Tweaks.
Affected files ...
.. //depot/projects/smpng/sys/vm/vm_mmap.c#108 edit
Differences ...
==== //depot/projects/smpng/sys/vm/vm_mmap.c#108 (text+ko) ====
@@ -203,17 +203,14 @@
struct vnode *vp;
vm_offset_t addr;
vm_size_t size, pageoff;
- vm_prot_t cap_maxprot, prot, maxprot;
+ vm_prot_t cap_maxprot, maxprot;
void *handle;
objtype_t handle_type;
- int align, error, flags;
+ int align, error, flags, prot;
off_t pos;
struct vmspace *vms = td->td_proc->p_vmspace;
cap_rights_t rights;
- if ((uap->prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC | PROT_NONE)) != 0)
- return (EINVAL);
-
addr = (vm_offset_t) uap->addr;
size = uap->len;
prot = uap->prot;
@@ -252,6 +249,9 @@
if ((flags & (MAP_ANON | MAP_SHARED | MAP_PRIVATE)) == 0 ||
(flags & (MAP_SHARED | MAP_PRIVATE)) == (MAP_SHARED | MAP_PRIVATE))
return (EINVAL);
+ if (prot != PROT_NONE &&
+ (prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC)) != 0)
+ return (EINVAL);
/*
* Align the file position to a page boundary,
@@ -421,6 +421,8 @@
map:
td->td_fpop = fp;
maxprot &= cap_maxprot;
+
+ /* This relies on VM_PROT_* matching PROT_*. */
error = vm_mmap(&vms->vm_map, &addr, size, prot, maxprot,
flags, handle_type, handle, pos);
td->td_fpop = NULL;
More information about the p4-projects
mailing list