From: Adhemerval Zanella Date: Wed, 7 May 2025 14:17:29 +0000 (-0300) Subject: elf: Fix UB on _dl_map_object_from_fd X-Git-Tag: glibc-2.42~176 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e529bfe8dee4bfde3ac74927b5b7b8df65cf3bb0;p=thirdparty%2Fglibc.git elf: Fix UB on _dl_map_object_from_fd 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. Reviewed-by: Florian Weimer --- 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