summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorgreen <green@FreeBSD.org>2000-07-23 06:49:46 +0000
committergreen <green@FreeBSD.org>2000-07-23 06:49:46 +0000
commit1297ef2f5c9413fb5c0caf8883b62a41cc133934 (patch)
tree0a90e945658026bfaffb4c320789a3a1eb04cf9b /usr.sbin
parent58095102ff0cd586774f698638a4a022add1b5f7 (diff)
downloadFreeBSD-src-1297ef2f5c9413fb5c0caf8883b62a41cc133934.zip
FreeBSD-src-1297ef2f5c9413fb5c0caf8883b62a41cc133934.tar.gz
Solve the problem where it is possible to get the kernel stuck in
a loop down in pmap_init_pt(). A subtraction causes the number of pages to become negative, that was assigned to an unsigned variable, and there is a lot of iteration. The bug is due to the ELF image activator not properly checking for its files being the correct size as specified by the ELF header. The solution is to check that the header doesn't ask for part of a file when that part of the file doesn't exist. Make sure to set VEXEC at the proper times to make the executables immutable (remove race conditions). Also, the ELF format specifiies header entries that allow embedding of other executables (hence how ld-elf.so.1 gets loaded, but not the same as loading shared libraries), so those executables need to be set VEXEC, too, so they're immutable. Reviewed by: peter
Diffstat (limited to 'usr.sbin')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud