]> git.decadent.org.uk Git - odhcp6c.git/blobdiff - src/ra.c
Add padding between odhcp6c_entry structures to ensure 32-bit alignment
[odhcp6c.git] / src / ra.c
index 1c121e63e3f8153064886293b3b8d5bcc72533b0..2d442f6a8bfbab096a2654317bd08fa60f113118 100644 (file)
--- a/src/ra.c
+++ b/src/ra.c
@@ -444,8 +444,9 @@ bool ra_process(void)
                        size_t ra_dns_len;
                        uint8_t *start = odhcp6c_get_state(states[i], &ra_dns_len);
                        for (struct odhcp6c_entry *c = (struct odhcp6c_entry*)start;
-                                               (uint8_t*)c < &start[ra_dns_len] && &c->auxtarget[c->auxlen] <= &start[ra_dns_len];
-                                               c = (struct odhcp6c_entry*)(&c->auxtarget[c->auxlen]))
+                                               (uint8_t*)c < &start[ra_dns_len] &&
+                                               (uint8_t*)odhcp6c_next_entry(c) <= &start[ra_dns_len];
+                                               c = odhcp6c_next_entry(c))
                                if (IN6_ARE_ADDR_EQUAL(&c->router, &from.sin6_addr) &&
                                                c->valid > router_valid)
                                        c->valid = router_valid;