From: "Stephane A. Sezer" <s...@cd80.net>

---
 usr.sbin/rtadvd/config.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/usr.sbin/rtadvd/config.c b/usr.sbin/rtadvd/config.c
index 2c003a3..6e3f185 100644
--- a/usr.sbin/rtadvd/config.c
+++ b/usr.sbin/rtadvd/config.c
@@ -785,8 +785,6 @@ make_packet(struct rainfo *rainfo)
                buf += sizeof(struct nd_opt_mtu);
        }
 
-       
-       
        TAILQ_FOREACH(pfx, &rainfo->prefixes, entry) {
                u_int32_t vltime, pltime;
                struct timeval now;
@@ -832,6 +830,10 @@ make_packet(struct rainfo *rainfo)
        TAILQ_FOREACH(rds, &rainfo->rdnsss, entry) {
                ndopt_rdnss = (struct nd_opt_rdnss *)buf;
                ndopt_rdnss->nd_opt_rdnss_type = ND_OPT_RDNSS;
+                /*
+                 * An IPv6 address is 16 bytes, so multiply the number of
+                 * addresses by two to get a size in units of 8 bytes.
+                 */
                ndopt_rdnss->nd_opt_rdnss_len = 1 + rds->servercnt * 2;
                ndopt_rdnss->nd_opt_rdnss_reserved = 0;
                ndopt_rdnss->nd_opt_rdnss_lifetime = htonl(rds->lifetime);
@@ -844,8 +846,6 @@ make_packet(struct rainfo *rainfo)
 
        TAILQ_FOREACH(dsl, &rainfo->dnssls, entry) {
                u_int32_t size;
-               char *curlabel_begin;
-               char *curlabel_end;
 
                ndopt_dnssl = (struct nd_opt_dnssl *)buf;
                ndopt_dnssl->nd_opt_dnssl_type = ND_OPT_DNSSL;
@@ -855,20 +855,21 @@ make_packet(struct rainfo *rainfo)
                size = 0;
                TAILQ_FOREACH(dnsd, &dsl->dnssldoms, entry)
                        size += 1 + dnsd->length;
-               /* align size on the next 8 byte boundary */
+               /* Align size on the next 8 byte boundary. */
                size = (size + 7) & ~7;
                ndopt_dnssl->nd_opt_dnssl_len = 1 + size / 8;
 
                buf += sizeof(struct nd_opt_dnssl);
 
                TAILQ_FOREACH(dnsd, &dsl->dnssldoms, entry) {
+                       char *curlabel_begin;
+                       char *curlabel_end;
+                       size_t curlabel_size;
+
                        curlabel_begin = dnsd->domain;
-                       while ((curlabel_end = strchr(curlabel_begin, '.')) &&
-                           (curlabel_end - curlabel_begin) > 0)
+                       while ((curlabel_end = strchr(curlabel_begin, '.')) != 
NULL &&
+                           (curlabel_size = curlabel_end - curlabel_begin) > 0)
                        {
-                               size_t curlabel_size;
-
-                               curlabel_size = curlabel_end - curlabel_begin;
                                *buf = curlabel_size;
                                ++buf;
                                strncpy(buf, curlabel_begin, curlabel_size);
-- 
Stephane A. Sezer

Reply via email to