diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -2093,6 +2093,7 @@ vm_size_t length, vm_offset_t max_addr, int find_space, vm_prot_t prot, vm_prot_t max, int cow) { + vm_map_entry_t entry; vm_offset_t alignment, curr_min_addr, min_addr; int gap, pidx, rv, try; bool cluster, en_aslr, update_anon; @@ -2127,6 +2128,8 @@ curr_min_addr = map->anon_loc; if (curr_min_addr == 0) cluster = false; + else if (!vm_map_lookup_entry(map, curr_min_addr, &entry)) + curr_min_addr = entry->end; } if (find_space != VMFS_NO_SPACE) { KASSERT(find_space == VMFS_ANY_SPACE ||