https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205806
Bug ID: 205806
Summary: [patch] bsdinstall(8): partedit can hang/crash on
read/lseek/malloc failures
Product: Base System
Version: 10.2-STABLE
Hardware: amd64
OS: Any
Status: New
Keywords: patch
Severity: Affects Only Me
Priority: ---
Component: bin
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Keywords: patch
CC: [email protected]
Created attachment 164966
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=164966&action=edit
malloc + read in a loop -> mmap
The current code for reading in the bootcode from a file has a few problems.
https://svnweb.freebsd.org/base/head/usr.sbin/bsdinstall/partedit/gpart_ops.c?revision=285679&view=markup#l408
408: if lseek(2) fails, bootsize underflows to SIZE_T_MAX, making the resulting
allocation dangerous
409: if malloc(3) fails, we end up with a null pointer deref later
413: if read(2) fails, the installer will hang trying to read(2) boot loader
code
I've replaced this with a call to mmap(2), which will give us what we want, and
also contains more error-handling if something goes wrong.
Tested on FreeBSD 10.2-STABLE on amd64.
--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "[email protected]"