Bad check for return value of mmap()
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Won't Fix
|
Undecided
|
Unassigned |
Bug Description
In
./roms/
there is this code:
addr = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
assert(addr != NULL);
This check is wrong, mmap never returns NULL, on errors it returns MAP_FAILED (or -1). (Also sidenote: asserts usually shouldn't be used for error checking.)
In
roms/skiboot/
there's a similar issue:
payload = mmap(NULL, payload_st.st_size - SECURE_
if (!payload)
This if should be (payload == MAP_FAILED).
Another one is in
./roms/
And in
./roms/
there's an mmap call that does not check the return value at all.
skiboot is a separate project, we do not manage its code in the QEMU project, but just include the source code in our release tarballs since we ship the skiboot binary with QEMU. Please report these problems to the skiboot project instead:
https:/ /github. com/open- power/skiboot