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 <pjfloyd@wanadoo.fr>
Reviewed by:	emaste
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D48854
This commit is contained in:
Konstantin Belousov 2025-02-05 00:33:11 +02:00
parent 84e3ffac12
commit e917958c36

View file

@ -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));
}