Avoid specifying VM_PROT_EXECUTE in mappings from pipe_map and exec_map.
These submaps are used for mapping pipe buffers and execv() argument strings respectively, so there's no need for such mappings to have execute permissions. Reported by: jhb Reviewed by: alc, jhb, kib MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D17827
This commit is contained in:
parent
2350a089e7
commit
07702f72e5
@ -509,9 +509,8 @@ pipespace_new(struct pipe *cpipe, int size)
|
||||
size = round_page(size);
|
||||
buffer = (caddr_t) vm_map_min(pipe_map);
|
||||
|
||||
error = vm_map_find(pipe_map, NULL, 0,
|
||||
(vm_offset_t *) &buffer, size, 0, VMFS_ANY_SPACE,
|
||||
VM_PROT_ALL, VM_PROT_ALL, 0);
|
||||
error = vm_map_find(pipe_map, NULL, 0, (vm_offset_t *)&buffer, size, 0,
|
||||
VMFS_ANY_SPACE, VM_PROT_RW, VM_PROT_RW, 0);
|
||||
if (error != KERN_SUCCESS) {
|
||||
if ((cpipe->pipe_buffer.buffer == NULL) &&
|
||||
(size > SMALL_PIPE_SIZE)) {
|
||||
|
@ -650,8 +650,8 @@ kmap_alloc_wait(vm_map_t map, vm_size_t size)
|
||||
map->needs_wakeup = TRUE;
|
||||
vm_map_unlock_and_wait(map, 0);
|
||||
}
|
||||
vm_map_insert(map, NULL, 0, addr, addr + size, VM_PROT_ALL,
|
||||
VM_PROT_ALL, MAP_ACC_CHARGED);
|
||||
vm_map_insert(map, NULL, 0, addr, addr + size, VM_PROT_RW, VM_PROT_RW,
|
||||
MAP_ACC_CHARGED);
|
||||
vm_map_unlock(map);
|
||||
return (addr);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user