From 9a25b5dd87b753c46667c46cd16324fafec03781 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 12 Mar 2019 15:18:15 +1030 Subject: [PATCH] wireaddr: keep valgrind happy with wireaddr which are pathnames. ==12787== Uninitialised byte(s) found during client check request ==12787== at 0x450AAC: memcheck_ (mem.h:247) ==12787== by 0x450B17: towire (towire.c:19) ==12787== by 0x45103D: towire_u8_array (towire.c:159) ==12787== by 0x443235: towire_wireaddr_internal (wireaddr.c:79) ==12787== by 0x46E6F2: towire_connectctl_init (gen_connect_wire.c:229) ==12787== by 0x40D6C8: connectd_init (connect_control.c:369) ==12787== by 0x4186D3: main (lightningd.c:701) ==12787== Address 0x682d8a9 is 361 bytes inside a block of size 568 alloc'd ==12787== at 0x4C2FD5F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==12787== by 0x4867A5: tal_resize_ (tal.c:694) ==12787== by 0x41F3EE: opt_add_addr_withtype (options.c:143) ==12787== by 0x41F4D7: opt_add_bind_addr (options.c:155) ==12787== by 0x47E364: parse_one (parse.c:121) ==12787== by 0x47F9C8: opt_parse (opt.c:210) ==12787== by 0x4212F9: handle_opts (options.c:892) ==12787== by 0x41864C: main (lightningd.c:667) Signed-off-by: Rusty Russell --- common/wireaddr.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/wireaddr.c b/common/wireaddr.c index acf064a57..238a81556 100644 --- a/common/wireaddr.c +++ b/common/wireaddr.c @@ -428,6 +428,8 @@ bool parse_wireaddr_internal(const char *arg, struct wireaddr_internal *addr, *err_msg = "Socket name too long"; return false; } + /* Zero it out for passing across the wire */ + memset(addr->u.sockname, 0, sizeof(addr->u.sockname)); strcpy(addr->u.sockname, arg); return true; }