Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Nov 2021 04:36:39 GMT
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: b26ac07d6c6c - stable/13 - rtld dump_auxv: be pedantic and distiguish between auxv union members based on format
Message-ID:  <202111190436.1AJ4adLs034257@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=b26ac07d6c6cba8447b9ae597473b6777a843c27

commit b26ac07d6c6cba8447b9ae597473b6777a843c27
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2021-11-13 19:04:51 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2021-11-19 04:25:27 +0000

    rtld dump_auxv: be pedantic and distiguish between auxv union members based on format
    
    (cherry picked from commit b61bce17f346d79cecfd8f195a64b10f77be43b1)
---
 libexec/rtld-elf/rtld.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index 4c3762ee1ab9..d5c3d2893582 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -6105,6 +6105,15 @@ static const struct auxfmt {
 	AUXFMT(AT_FXRNG, "%p"),
 };
 
+static bool
+is_ptr_fmt(const char *fmt)
+{
+	char last;
+
+	last = fmt[strlen(fmt) - 1];
+	return (last == 'p' || last == 's');
+}
+
 static void
 dump_auxv(Elf_Auxinfo **aux_info)
 {
@@ -6120,7 +6129,13 @@ dump_auxv(Elf_Auxinfo **aux_info)
 		if (fmt->fmt == NULL)
 			continue;
 		rtld_fdprintf(STDOUT_FILENO, "%s:\t", fmt->name);
-		rtld_fdprintfx(STDOUT_FILENO, fmt->fmt, auxp->a_un.a_ptr);
+		if (is_ptr_fmt(fmt->fmt)) {
+			rtld_fdprintfx(STDOUT_FILENO, fmt->fmt,
+			    auxp->a_un.a_ptr);
+		} else {
+			rtld_fdprintfx(STDOUT_FILENO, fmt->fmt,
+			    auxp->a_un.a_val);
+		}
 		rtld_fdprintf(STDOUT_FILENO, "\n");
 	}
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202111190436.1AJ4adLs034257>