Skip to content
Snippets Groups Projects
Commit 0d0a82b1 authored by Avi Kivity's avatar Avi Kivity
Browse files

mmu: allow mapping a short file

When loading a small library (libverify.so) this happens.  Since it's legal,
allow it.
parent 0505ea4f
No related branches found
No related tags found
No related merge requests found
...@@ -131,8 +131,14 @@ namespace mmu { ...@@ -131,8 +131,14 @@ namespace mmu {
vma* map_file(void* addr, size_t size, unsigned perm, vma* map_file(void* addr, size_t size, unsigned perm,
file& f, f_offset offset) file& f, f_offset offset)
{ {
auto fsize = f.size();
if (offset >= fsize) {
return map_anon(addr, size, perm);
}
vma* ret = map_anon_dontzero(addr, size, perm); vma* ret = map_anon_dontzero(addr, size, perm);
f.read(addr, offset, size); auto rsize = std::min(offset + size, fsize) - offset;
f.read(addr, offset, rsize);
memset(addr + rsize, 0, size - rsize);
return ret; return ret;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment