Browse Source

libdl: properly cast parameters for %p format string specifier

The "%p" format specifier requires a void pointer. Cast parameters of
type ElfW(Addr) to 'void *'.

This fixes warnings if _dl_if_debug_print() performs parameter type
checking.

Signed-off-by: Marcus Haehnel <marcus.haehnel@kernkonzept.com>
Frank Mehnert 8 months ago
parent
commit
8a08df0596
1 changed files with 2 additions and 2 deletions
  1. 2 2
      ldso/libdl/libdl.c

+ 2 - 2
ldso/libdl/libdl.c

@@ -972,11 +972,11 @@ static int do_dlclose(void *vhandle, int need_fini)
 			end = (end + ADDR_ALIGN) & PAGE_ALIGN;
 			start = start & ~ADDR_ALIGN;
 			if (end > start) {
-				_dl_if_debug_print("unmapping: %s at %p with length: '%p' until %p\n", tpnt->libname, tpnt->mapaddr, end - start, tpnt->mapaddr + (end - start));
+				_dl_if_debug_print("unmapping: %s at %p with length: '%p' until %p\n", tpnt->libname, (void *)tpnt->mapaddr, (void *)(end - start), (void *)(tpnt->mapaddr + (end - start)));
 				DL_LIB_UNMAP (tpnt, end - start);
 			}
 			else {
-				_dl_if_debug_print("NOT unmapping: %s at %p. start<end ('%p'<'%p')", tpnt->libname, tpnt->mapaddr, start, end);
+				_dl_if_debug_print("NOT unmapping: %s at %p. start<end ('%p'<'%p')", tpnt->libname, (void *)tpnt->mapaddr, (void *)start, (void *)end);
 			}
 			/* Free elements in RTLD_LOCAL scope list */
 			for (runp = tpnt->rtld_local; runp; runp = tmp) {