mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-11-01 06:58:22 +00:00
elf: fix rounding issue
This commit is contained in:
@@ -84,6 +84,10 @@ static int load(vnode_t *vnode, elfph64_t *ph) {
|
|||||||
// zero remaining parts of the first page if needed
|
// zero remaining parts of the first page if needed
|
||||||
if (remaining && msize) {
|
if (remaining && msize) {
|
||||||
size_t remainingmsize = remaining > msize ? msize : remaining;
|
size_t remainingmsize = remaining > msize ? msize : remaining;
|
||||||
|
size_t pagediff = ROUND_UP(mempos, PAGE_SIZE) - mempos;
|
||||||
|
if (remainingmsize > ROUND_UP(mempos, PAGE_SIZE) - mempos)
|
||||||
|
remainingmsize = pagediff;
|
||||||
|
|
||||||
memset((void *)mempos, 0, remainingmsize);
|
memset((void *)mempos, 0, remainingmsize);
|
||||||
msize -= remainingmsize;
|
msize -= remainingmsize;
|
||||||
mempos += remainingmsize;
|
mempos += remainingmsize;
|
||||||
|
|||||||
Reference in New Issue
Block a user