The branch main has been updated by kib:

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

commit e917958c36670131ab42e8f2c849b708a3216e37
Author:     Konstantin Belousov <k...@freebsd.org>
AuthorDate: 2025-02-04 22:33:11 +0000
Commit:     Konstantin Belousov <k...@freebsd.org>
CommitDate: 2025-02-05 10:33:29 +0000

    rtld: clear any holes in the struct utrace_rtld passed to kernel logger
    
    This should avoid an (almost) false positive from Valgrind, by filling
    the padding on LP64.
    
    PR:     284563
    Reported by:    Paul Floyd <pjfl...@wanadoo.fr>
    Reviewed by:    emaste
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D48854
---
 libexec/rtld-elf/rtld.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index 169ec0200ea5..aab20407b00d 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -337,14 +337,14 @@ ld_utrace_log(int event, void *handle, void *mapbase, 
size_t mapsize,
        struct utrace_rtld ut;
        static const char rtld_utrace_sig[RTLD_UTRACE_SIG_SZ] = RTLD_UTRACE_SIG;
 
+       memset(&ut, 0, sizeof(ut));     /* clear holes */
        memcpy(ut.sig, rtld_utrace_sig, sizeof(ut.sig));
        ut.event = event;
        ut.handle = handle;
        ut.mapbase = mapbase;
        ut.mapsize = mapsize;
        ut.refcnt = refcnt;
-       bzero(ut.name, sizeof(ut.name));
-       if (name)
+       if (name != NULL)
                strlcpy(ut.name, name, sizeof(ut.name));
        utrace(&ut, sizeof(ut));
 }

Reply via email to