]> git.ipfire.org Git - thirdparty/man-pages.git/commitdiff
rtld-audit.7: Fix (typo) error in la_pltenter() description
authorNamhyung Kim <namhyung@gmail.com>
Tue, 3 Nov 2015 00:18:17 +0000 (09:18 +0900)
committerMichael Kerrisk <mtk.manpages@gmail.com>
Thu, 3 Dec 2015 05:58:48 +0000 (06:58 +0100)
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>
man7/rtld-audit.7

index d0f75638df0e4f2af09d5e38f7576775baed9877..643bc570487391ee3711550b32239345207d1652 100644 (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.