Page MenuHomeFreeBSD

D59716.diff
No OneTemporary

D59716.diff

diff --git a/sys/arm/arm/minidump_machdep.c b/sys/arm/arm/minidump_machdep.c
--- a/sys/arm/arm/minidump_machdep.c
+++ b/sys/arm/arm/minidump_machdep.c
@@ -187,7 +187,7 @@
/* Calculate dump size. */
mbp = state->msgbufp;
- dumpsize = ptesize;
+ dumpsize = round_page(ptesize);
dumpsize += round_page(mbp->msg_size);
dumpsize += round_page(nitems(dump_avail) * sizeof(uint64_t));
dumpsize += round_page(BITSET_SIZE(vm_page_dump_pages));
@@ -269,7 +269,9 @@
}
}
if (addr != dumpbuf) {
- error = blk_write(di, dumpbuf, 0, addr - dumpbuf);
+ /* The sparse page array starts at a page-aligned offset. */
+ bzero(addr, dumpbuf + sizeof(dumpbuf) - addr);
+ error = blk_write(di, dumpbuf, 0, sizeof(dumpbuf));
if (error != 0)
goto fail;
}

File Metadata

Mime Type
text/plain
Expires
Sat, Sep 26, 9:51 AM (2 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
39045109
Default Alt Text
D59716.diff (763 B)

Event Timeline