summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2015-09-07 11:21:58 +0200
committerSteven Barth <steven@midlink.org>2015-09-07 11:21:58 +0200
commit8458abaddf4b231df4e8f8aafdb0c38ae125da95 (patch)
tree50e008070e04049e60fb3c5c28101384a266f827
parentb8f53276092dc48409006fec3c1e90383820cbc5 (diff)
downloadodhcpd-8458abaddf4b231df4e8f8aafdb0c38ae125da95.tar.gz
dhcpv6: fix mac-handling
-rw-r--r--src/dhcpv6-ia.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/dhcpv6-ia.c b/src/dhcpv6-ia.c
index d301b4f..30bffbc 100644
--- a/src/dhcpv6-ia.c
+++ b/src/dhcpv6-ia.c
@@ -92,14 +92,15 @@ int setup_dhcpv6_ia_interface(struct interface *iface, bool enable)
struct lease *lease;
list_for_each_entry(lease, &leases, head) {
// Construct entry
- struct dhcpv6_assignment *a = calloc(1, sizeof(*a) + lease->duid_len);
+ size_t duid_len = lease->duid_len ? lease->duid_len : 14;
+ struct dhcpv6_assignment *a = calloc(1, sizeof(*a) + duid_len);
if (!a) {
syslog(LOG_ERR, "Calloc failed for static lease assignment on interface %s",
iface->ifname);
return -1;
}
- a->clid_len = lease->duid_len;
+ a->clid_len = duid_len;
a->length = 128;
if (lease->hostid) {
a->assigned = lease->hostid;