fix invalid library phdr pointers passed to callback from dl_iterate_phdr
authorRich Felker <dalias@aerifal.cx>
Wed, 10 Jul 2013 18:38:20 +0000 (14:38 -0400)
committerRich Felker <dalias@aerifal.cx>
Wed, 10 Jul 2013 18:38:20 +0000 (14:38 -0400)
commit30763fd01bef85f30e79baa30173674c007690cc
tree35f16a19bb39fe7d3f4657f60c90365a57cda584
parentc713d8797804903b54203a645e023e2077c7556d
fix invalid library phdr pointers passed to callback from dl_iterate_phdr

map_library was saving pointers to an automatic-storage buffer rather
than pointers into the mapping. this should be a fairly simple fix,
but the patch here is slightly complicated by two issues:

1. supporting gratuitously obfuscated ELF files where the program
headers are not right at the beginning of the file.

2. cleaning up the map_library function so that data isn't clobbered
by the time we need it.
src/ldso/dynlink.c