[PATCH v9 4/4] elf: Fix runtime linker auditing on aarch64 (BZ #26643)

Szabolcs Nagy szabolcs.nagy@arm.com
Tue Jan 11 17:09:44 GMT 2022


The 01/11/2022 13:49, Adhemerval Zanella wrote:
> On 11/01/2022 08:16, Szabolcs Nagy wrote:
> > The 01/03/2022 10:25, Adhemerval Zanella via Libc-alpha wrote:
> >> @@ -142,13 +143,17 @@ _dl_runtime_profile:
> >>  	   Stack frame layout:
> >>  	   [sp,   #...] lr
> >>  	   [sp,   #...] &PLTGOT[n]
> >> -	   [sp,    #96] La_aarch64_regs
> >> -	   [sp,    #48] La_aarch64_retval
> >> -	   [sp,    #40] frame size return from pltenter
> >> -	   [sp,    #32] dl_profile_call saved x1
> >> -	   [sp,    #24] dl_profile_call saved x0
> >> -	   [sp,    #16] t1
> >> -	   [sp,     #0] x29, lr   <- x29
> >> +	   -----------------------
> >> +	   [sp,   #384] La_aarch64_regs::lr_xreg (x0-x8)
> >> +	   [sp,   #256] La_aarch64_regs::lr_vreg (q0-q7)
> >> +	   [sp,   #240] La_aarch64_regs::sp and La_aarch64_regs::lr
> >> +	   [sp,   #176] La_aarch64_retval::lrv_xreg (x0-x7)
> >> +	   [sp,   # 48] La_aarch64_retval::lrv_vreg (q0-q7)
> >> +	   [sp,   # 40] frame size return from pltenter
> >> +	   [sp,   # 32] dl_profile_call saved x1
> >> +	   [sp,   # 24] dl_profile_call saved x0
> >> +	   [sp,   # 16] t1
> >> +	   [sp,   #  0] x29, lr   <- x29
> >>  	 */
> > 
> > the layout in the comment looks backwards.
> 
> It follows the convention of the about layout:
> 
>         /* AArch64 we get called with:
>            ip0          &PLTGOT[2]
>            ip1          temp(dl resolver entry point)
>            [sp, #8]     lr
>            [sp, #0]     &PLTGOT[n]
> 	[...]
> 

i mean the order of the fields is wrong.

lr_xreg has larger address than lr_vreg
but in the struct it is the opposite.

i think you need to reorder the fields.
(but we don't have to document the exact offsets
here, so a simplified comment is fine too)


More information about the Libc-alpha mailing list