Subject: CVS commit: basesrc
To: None <source-changes@netbsd.org>
From: Jason R Thorpe <thorpej@netbsd.org>
List: source-changes
Date: 08/06/1999 15:33:50
Module Name:	basesrc
Committed By:	thorpej
Date:		Fri Aug  6 22:33:50 UTC 1999

Modified Files:
	basesrc/libexec/ld.elf_so: map_object.c

Log Message:
When allocating the entire address space of an object, map an anonymous
region first (using the data/bss protection) covering it, then overlay
the text and data regions at the appropriate offsets within the region,
and then unmap any gap between the text and data.

The previous method of maping the entire address space with the actual
file object itself is incorrect, as it may extend past the end of the
file if the section alignment is large enough.

This bug was the source of the libposix failure on the SPARC and another
similar failure (with libc!) on the Alpha (failure was accompanied by
a "uvn_io: size check fired" message on the console).


To generate a diff of this commit:
cvs rdiff -r1.4 -r1.5 basesrc/libexec/ld.elf_so/map_object.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.