Revision e89f07d3 linux-user/mmap.c
b/linux-user/mmap.c | ||
---|---|---|
183 | 183 |
} |
184 | 184 |
#endif |
185 | 185 |
|
186 |
if (offset & ~TARGET_PAGE_MASK) |
|
187 |
return -EINVAL; |
|
186 |
if (offset & ~TARGET_PAGE_MASK) { |
|
187 |
errno = EINVAL; |
|
188 |
return -1; |
|
189 |
} |
|
188 | 190 |
|
189 | 191 |
len = TARGET_PAGE_ALIGN(len); |
190 | 192 |
if (len == 0) |
... | ... | |
232 | 234 |
} |
233 | 235 |
} |
234 | 236 |
|
235 |
if (start & ~TARGET_PAGE_MASK) |
|
236 |
return -EINVAL; |
|
237 |
if (start & ~TARGET_PAGE_MASK) { |
|
238 |
errno = EINVAL; |
|
239 |
return -1; |
|
240 |
} |
|
237 | 241 |
end = start + len; |
238 | 242 |
host_end = HOST_PAGE_ALIGN(end); |
239 | 243 |
|
... | ... | |
244 | 248 |
/* msync() won't work here, so we return an error if write is |
245 | 249 |
possible while it is a shared mapping */ |
246 | 250 |
if ((flags & MAP_TYPE) == MAP_SHARED && |
247 |
(prot & PROT_WRITE)) |
|
248 |
return -EINVAL; |
|
251 |
(prot & PROT_WRITE)) { |
|
252 |
errno = EINVAL; |
|
253 |
return -1; |
|
254 |
} |
|
249 | 255 |
retaddr = target_mmap(start, len, prot | PROT_WRITE, |
250 | 256 |
MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, |
251 | 257 |
-1, 0); |
Also available in: Unified diff