+ if (len >= 4) {
+ unsigned i;
+
+ in_addrs_free(lease->dns);
+
+ lease->dns = new0(struct in_addr*, len / 4 + 1);
+ if (!lease->dns)
+ return -ENOMEM;
+
+ for (i = 0; i < len / 4; i++) {
+ lease->dns[i] = new0(struct in_addr, 1);
+ memcpy(&lease->dns[i]->s_addr, option + 4 * i, 4);
+ }
+
+ lease->dns[i + 1] = NULL;
+ }