[PATCH 11/11] elf: Fix UB on _dl_map_object_from_fd
Florian Weimer
fweimer@redhat.com
Tue May 20 12:51:25 GMT 2025
* Adhemerval Zanella:
> On 32-bit architecture ubsan triggers:
>
> UBSAN: Undefined behaviour in dl-load.c:1345:54 pointer index expression with base 0x00612508 overflowed to 0xf7c3a508
>
> Use explicit uintptr_t operation instead.
> ---
> elf/dl-load.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/elf/dl-load.c b/elf/dl-load.c
> index bf29ec725d..6e26ef0583 100644
> --- a/elf/dl-load.c
> +++ b/elf/dl-load.c
> @@ -1340,7 +1340,7 @@ cannot enable executable stack as shared object requires");
>
> /* Adjust the address of the TLS initialization image. */
> if (l->l_tls_initimage != NULL)
> - l->l_tls_initimage = (char *) l->l_tls_initimage + l->l_addr;
> + l->l_tls_initimage = (void*)((uintptr_t)l->l_tls_initimage + l->l_addr);
>
> /* Process program headers again after load segments are mapped in
> case processing requires accessing those segments. Scan program
This loooks okay.
Reviewed-by: Florian Weimer <fweimer@redhat.com>
Thanks,
Florian
More information about the Libc-alpha
mailing list