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:
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user