diff options
author | Hiroki Sato <hrs@FreeBSD.org> | 2015-10-22 09:55:40 +0000 |
---|---|---|
committer | Hiroki Sato <hrs@FreeBSD.org> | 2015-10-22 09:55:40 +0000 |
commit | c8b84e533096d8b1e9af822d5b9c904e0eb7d21e (patch) | |
tree | cea1533180c0259fb114c88c5394415e0cc6a01d /usr.sbin | |
parent | 2da3897d01e0bd4135ea1d8cc05a792ddc33baf2 (diff) | |
download | src-c8b84e533096d8b1e9af822d5b9c904e0eb7d21e.tar.gz src-c8b84e533096d8b1e9af822d5b9c904e0eb7d21e.zip |
- 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 [*]
Notes
Notes:
svn path=/head/; revision=289750
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 4f14e0fbe82b..d63af5a4ab4c 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; |