use AT_EXECFN, if available, for dynamic linker to identify main program
authorRich Felker <dalias@aerifal.cx>
Fri, 23 Aug 2013 18:14:47 +0000 (14:14 -0400)
committerRich Felker <dalias@aerifal.cx>
Fri, 23 Aug 2013 18:14:47 +0000 (14:14 -0400)
commitcc51505a32930754d2cf281c15caa1829b8436e9
tree43b7814c7b82d81f8b1104cd977f9278c7a89f5f
parenta897a20a57b461d388447858b9404fc81f107bcd
use AT_EXECFN, if available, for dynamic linker to identify main program

fallback to argv[0] as before. unlike argv[0], AT_EXECFN was a valid
(but possibly relative) pathname for the new program image at the time
the execve syscall was made.

as a special case, ignore AT_EXECFN if it begins with "/proc/", in
order not to give bogus (and possibly harmful) results when fexecve
was used.
src/ldso/dynlink.c