aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2023-08-04 12:44:01 +0200
committerFlorian Weimer <fweimer@redhat.com>2023-08-23 08:12:48 +0200
commit65a5112ede9ba3e37e165cf6c9c432f46b903936 (patch)
tree680173e392f069454d6ec9e9f55b060c4a9901fb
parentf6c8204fd7fabf0cf4162eaf10ccf23258e4d10e (diff)
downloadglibc-65a5112ede9ba3e37e165cf6c9c432f46b903936.tar
glibc-65a5112ede9ba3e37e165cf6c9c432f46b903936.tar.gz
glibc-65a5112ede9ba3e37e165cf6c9c432f46b903936.tar.bz2
glibc-65a5112ede9ba3e37e165cf6c9c432f46b903936.zip
Linux: Avoid conflicting types in ld.so --list-diagnostics
The path auxv[*].a_val could either be an integer or a string, depending on the a_type value. Use a separate field, a_val_string, to simplify mechanical parsing of the --list-diagnostics output. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
-rw-r--r--sysdeps/unix/sysv/linux/dl-diagnostics-kernel.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/sysdeps/unix/sysv/linux/dl-diagnostics-kernel.c b/sysdeps/unix/sysv/linux/dl-diagnostics-kernel.c
index e0cfa63da6..d522e2797e 100644
--- a/sysdeps/unix/sysv/linux/dl-diagnostics-kernel.c
+++ b/sysdeps/unix/sysv/linux/dl-diagnostics-kernel.c
@@ -30,16 +30,19 @@ print_auxv (void)
for (ElfW(auxv_t) *av = GLRO(dl_auxv); av->a_type != AT_NULL; ++av)
{
_dl_printf ("auxv[0x%x].a_type=0x%lx\n"
- "auxv[0x%x].a_val=",
+ "auxv[0x%x].a_val",
index, (unsigned long int) av->a_type, index);
if (av->a_type == AT_EXECFN
|| av->a_type == AT_PLATFORM
|| av->a_type == AT_BASE_PLATFORM)
- /* The address of the strings is not useful at all, so print
- the strings themselves. */
- _dl_diagnostics_print_string ((const char *) av->a_un.a_val);
+ {
+ /* The address of the strings is not useful at all, so print
+ the strings themselves. */
+ _dl_printf ("_string=");
+ _dl_diagnostics_print_string ((const char *) av->a_un.a_val);
+ }
else
- _dl_printf ("0x%lx", (unsigned long int) av->a_un.a_val);
+ _dl_printf ("=0x%lx", (unsigned long int) av->a_un.a_val);
_dl_printf ("\n");
++index;
}