summaryrefslogtreecommitdiffstats
path: root/src/if-bsd.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2017-03-31 11:45:36 +0100
committerRoy Marples <roy@marples.name>2017-03-31 11:45:36 +0100
commitcbc18b18f511ae2b5b346f7a056ffd9ef45d9638 (patch)
tree9e021004b5afc3b33f5f8854758b5f8cb8c83e02 /src/if-bsd.c
parent03db98aca660af0c98fa26675c2fb7c08dafbda0 (diff)
downloaddhcpcd-cbc18b18f511ae2b5b346f7a056ffd9ef45d9638.tar.xz
Initialise the whole rt msg buffer to avoid valgrind errors.
Diffstat (limited to 'src/if-bsd.c')
-rw-r--r--src/if-bsd.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/if-bsd.c b/src/if-bsd.c
index 15d16e52..504811db 100644
--- a/src/if-bsd.c
+++ b/src/if-bsd.c
@@ -380,7 +380,6 @@ if_route(unsigned char cmd, const struct rt *rt)
} rtmsg;
struct rt_msghdr *rtm = &rtmsg.hdr;
char *bp = rtmsg.buffer;
- size_t l;
struct sockaddr_dl sdl;
bool gateway_unspec;
@@ -393,12 +392,11 @@ if_route(unsigned char cmd, const struct rt *rt)
ctx->options |= DHCPCD_RTM_PPID;
#define ADDSA(sa) do { \
- l = RT_ROUNDUP(((sa)->sa_len)); \
- memcpy(bp, (sa), l); \
- bp += l; \
+ memcpy(bp, (sa), (sa)->sa_len); \
+ bp += RT_ROUNDUP((sa)->sa_len); \
} while (0 /* CONSTCOND */)
- memset(rtm, 0, sizeof(*rtm));
+ memset(&rtmsg, 0, sizeof(rtmsg));
rtm->rtm_version = RTM_VERSION;
rtm->rtm_type = cmd;
#ifdef __OpenBSD__