mirror of https://github.com/mkerrisk/man-pages
rtld-audit.7: Fix (typo) error in la_pltenter() description
s/la_pltenter()/la_pltexit()/ la_pltenter() is called regardless of the value of framesizep but la_pltexit() is called only if la_pltenter() returns with non-zero framesizep set. I spent long time to figure out why la_pltexit() is not called at all. Quoting comments in glibc/sysdeps/x86_64/dl-trampoline.h: /* There's nothing in the frame size, so there will be no call to the _dl_call_pltexit. */ and /* At this point we need to prepare new stack for the function which has to be called. We copy the original stack to a temporary buffer of the size specified by the 'framesize' returned from _dl_profile_fixup */ I think it's because it needs to preserve 'inregs' to be passed to la_pltexit(). The _dl_profile_fixup() sets the '*framesizep' to maximum value of what la_pltenter() sets. Please see glibc/elf/dl-runtime.c file. Signed-off-by: Namhyung Kim <namhyung@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
parent
9242ecfe97
commit
3a0c27f88e
|
@ -400,7 +400,7 @@ If different
|
|||
invocations for this symbol return different values,
|
||||
then the maximum returned value is used.
|
||||
The
|
||||
.BR la_pltenter ()
|
||||
.BR la_pltexit ()
|
||||
function is called only if this buffer is
|
||||
explicitly set to a suitable value.
|
||||
|
||||
|
|
Loading…
Reference in New Issue