]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
cheri: elf: fix pointer provenance of l_tls_initimage
authorSzabolcs Nagy <szabolcs.nagy@arm.com>
Thu, 7 Apr 2022 16:04:59 +0000 (17:04 +0100)
committerSzabolcs Nagy <szabolcs.nagy@arm.com>
Fri, 5 Aug 2022 18:45:19 +0000 (19:45 +0100)
elf/dl-load.c
elf/rtld.c

index 1ad0868dad809d56c7ecced65ce482af4982abc9..367b8cdab12cb2ec5c4ee3d46a9c53549c4b96ef 100644 (file)
@@ -1369,7 +1369,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 = (ElfW(Addr)) l->l_tls_initimage + (char *) l->l_addr;
 
   /* Process program headers again after load segments are mapped in
      case processing requires accessing those segments.  Scan program
index 2c61935a21e235b6483f1474316adfcc6a88984f..6ba7b94761482f223fe2f40d16902a2af6d2b657 100644 (file)
@@ -1274,7 +1274,7 @@ rtld_setup_main_map (struct link_map *main_map)
      the executable is actually an ET_DYN object.  */
   if (main_map->l_tls_initimage != NULL)
     main_map->l_tls_initimage
-      = (char *) main_map->l_tls_initimage + main_map->l_addr;
+      = (ElfW(Addr)) main_map->l_tls_initimage + (char *) main_map->l_addr;
   if (! main_map->l_map_end)
     main_map->l_map_end = ~0;
   if (! main_map->l_text_end)