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:
Namhyung Kim 2015-11-03 09:18:17 +09:00 committed by Michael Kerrisk
parent 9242ecfe97
commit 3a0c27f88e
1 changed files with 1 additions and 1 deletions

View File

@ -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.