diff options
author | hrs <hrs@FreeBSD.org> | 2015-10-22 09:55:40 +0000 |
---|---|---|
committer | hrs <hrs@FreeBSD.org> | 2015-10-22 09:55:40 +0000 |
commit | 15487e4934ed7fd4b74d35a1f97c920bca72ef11 (patch) | |
tree | cea1533180c0259fb114c88c5394415e0cc6a01d /usr.sbin | |
parent | 1025a58857e51798030a64fa0fb3a22ce954d59c (diff) | |
download | FreeBSD-src-15487e4934ed7fd4b74d35a1f97c920bca72ef11.zip FreeBSD-src-15487e4934ed7fd4b74d35a1f97c920bca72ef11.tar.gz |
- Fix a bug which prevented dnssl[0-9] and rdnss[0-9] parameters from
working.
- Fix a pointer calculation for padding when multiple dnssl[0-9]
parameters are specified [*].
Reported by: http://bugs.dragonflybsd.org/issues/2847 [*]
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/rtadvd/config.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/usr.sbin/rtadvd/config.c b/usr.sbin/rtadvd/config.c index 4f14e0fb..d63af5a 100644 --- a/usr.sbin/rtadvd/config.c +++ b/usr.sbin/rtadvd/config.c @@ -808,7 +808,7 @@ getconfig_free_rti: makeentry(entbuf, sizeof(entbuf), i, "rdnss"); addr = (char *)agetstr(entbuf, &bp); if (addr == NULL) - break; + continue; ELM_MALLOC(rdn, exit(1)); TAILQ_INIT(&rdn->rd_list); @@ -859,7 +859,7 @@ getconfig_free_rdn: makeentry(entbuf, sizeof(entbuf), i, "dnssl"); addr = (char *)agetstr(entbuf, &bp); if (addr == NULL) - break; + continue; ELM_MALLOC(dns, exit(1)); @@ -1528,6 +1528,7 @@ make_packet(struct rainfo *rai) /* Padding to next 8 octets boundary */ len = buf - (char *)ndopt_dnssl; len += (len % 8) ? 8 - len % 8 : 0; + buf = (char *)ndopt_dnssl + len; /* Length field must be in 8 octets */ ndopt_dnssl->nd_opt_dnssl_len = len / 8; |