summaryrefslogtreecommitdiffstats
path: root/src/ipv6nd.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2017-08-03 20:22:19 +0100
committerRoy Marples <roy@marples.name>2017-08-03 20:22:19 +0100
commita75398d072f839aa0f7a8f7bd354a0d4a63aeffc (patch)
tree5edf18fe13f557afefeff7e7b9b3875e20a2b0d1 /src/ipv6nd.c
parentdf9ff183d6e9849c207be79097b43b516f6ca9fd (diff)
downloaddhcpcd-a75398d072f839aa0f7a8f7bd354a0d4a63aeffc.tar.xz
Fix a memory issue.
Diffstat (limited to 'src/ipv6nd.c')
-rw-r--r--src/ipv6nd.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/ipv6nd.c b/src/ipv6nd.c
index 0884c9ab..b7408e9d 100644
--- a/src/ipv6nd.c
+++ b/src/ipv6nd.c
@@ -246,16 +246,16 @@ ipv6nd_makersprobe(struct interface *ifp)
state->rs = calloc(1, state->rslen);
if (state->rs == NULL)
return -1;
- rs = (void *)state->rs;
+ rs = state->rs;
rs->nd_rs_type = ND_ROUTER_SOLICIT;
- rs->nd_rs_code = 0;
- rs->nd_rs_cksum = 0;
- rs->nd_rs_reserved = 0;
+ //rs->nd_rs_code = 0;
+ //rs->nd_rs_cksum = 0;
+ //rs->nd_rs_reserved = 0;
if (ifp->hwlen != 0) {
struct nd_opt_hdr *nd;
- nd = (struct nd_opt_hdr *)(state->rs + sizeof(*rs));
+ nd = (struct nd_opt_hdr *)(state->rs + 1);
nd->nd_opt_type = ND_OPT_SOURCE_LINKADDR;
nd->nd_opt_len = (uint8_t)((ROUNDUP8(ifp->hwlen + 2)) >> 3);
memcpy(nd + 1, ifp->hwaddr, ifp->hwlen);