summaryrefslogtreecommitdiff
path: root/vm/vm_map.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm/vm_map.c')
-rw-r--r--vm/vm_map.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/vm/vm_map.c b/vm/vm_map.c
index 4da72d4e..2fd27316 100644
--- a/vm/vm_map.c
+++ b/vm/vm_map.c
@@ -685,7 +685,7 @@ restart:
start = (map->min_offset + mask) & ~mask;
end = start + size;
- if ((end <= start) || (end > map->max_offset)) {
+ if ((start < map->min_offset) || (end <= start) || (end > map->max_offset)) {
goto error;
}
@@ -699,7 +699,8 @@ restart:
start = (entry->vme_end + mask) & ~mask;
end = start + size;
- if ((end > start)
+ if ((start >= entry->vme_end)
+ && (end > start)
&& (end <= map->max_offset)
&& (end <= (entry->vme_end + entry->gap_size))) {
*startp = start;
@@ -738,6 +739,7 @@ restart:
assert(entry->gap_size >= max_size);
start = (entry->vme_end + mask) & ~mask;
+ assert(start >= entry->vme_end);
end = start + size;
assert(end > start);
assert(end <= (entry->vme_end + entry->gap_size));