ndp: Fix calculation of length for DNS Search List option (31)
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
4667226bb0
commit
a9c8d4d924
1 changed files with 3 additions and 3 deletions
6
ndp.c
6
ndp.c
|
@ -127,7 +127,7 @@ int ndp(struct ctx *c, struct ethhdr *eh, size_t len)
|
|||
len += strlen(c->dns_search[n].n) + 2;
|
||||
if (len) {
|
||||
*p++ = 31; /* DNSSL */
|
||||
*p++ = 2 + (len + 8 - 1) / 8; /* length */
|
||||
*p++ = (len + 8 - 1) / 8 + 1; /* length */
|
||||
p += 2; /* reserved */
|
||||
*(uint32_t *)p = htonl(60); /* lifetime */
|
||||
p += 4;
|
||||
|
@ -148,8 +148,8 @@ int ndp(struct ctx *c, struct ethhdr *eh, size_t len)
|
|||
*(p++) = 0;
|
||||
}
|
||||
|
||||
memset(p, 0, len % 8); /* padding */
|
||||
p += len % 8;
|
||||
memset(p, 0, 8 - len % 8); /* padding */
|
||||
p += 8 - len % 8;
|
||||
}
|
||||
|
||||
*p++ = 1; /* source ll */
|
||||
|
|
Loading…
Reference in a new issue