In rtld's map_object(), use pread(..., 0) rather than read() to read the

ELF header from the front of the file.  As all other I/O on the binary
is done using mmap(), this avoids the need for seek privileges on the
file descriptor during run-time linking.

MFC after:	1 month
Sponsored by:	Google
This commit is contained in:
Robert Watson 2009-10-06 17:14:39 +00:00
parent a502a84d5a
commit 1c232cd509

View File

@ -273,7 +273,7 @@ get_elf_header (int fd, const char *path)
} u;
ssize_t nbytes;
if ((nbytes = read(fd, u.buf, PAGE_SIZE)) == -1) {
if ((nbytes = pread(fd, u.buf, PAGE_SIZE, 0)) == -1) {
_rtld_error("%s: read error: %s", path, strerror(errno));
return NULL;
}