summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhrs <hrs@FreeBSD.org>2015-10-22 09:55:40 +0000
committerhrs <hrs@FreeBSD.org>2015-10-22 09:55:40 +0000
commit15487e4934ed7fd4b74d35a1f97c920bca72ef11 (patch)
treecea1533180c0259fb114c88c5394415e0cc6a01d
parent1025a58857e51798030a64fa0fb3a22ce954d59c (diff)
downloadFreeBSD-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 [*]
-rw-r--r--usr.sbin/rtadvd/config.c5
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;
OpenPOWER on IntegriCloud