diff --git a/src/core/net/dhcp6_server.cpp b/src/core/net/dhcp6_server.cpp index f5bb225c6..6e85b1ce4 100644 --- a/src/core/net/dhcp6_server.cpp +++ b/src/core/net/dhcp6_server.cpp @@ -555,7 +555,8 @@ otError Dhcp6Server::AddIaAddress(Message &aMessage, otIp6Prefix &aIp6Prefix, Cl option.Init(); memcpy((option.GetAddress()->mFields.m8), &(aIp6Prefix.mPrefix), 8); - memcpy(&(option.GetAddress()->mFields.m8[8]), aClient.GetDuidLinkLayerAddress(), sizeof(Mac::ExtAddress)); + static_cast(option.GetAddress())->SetIid( + *reinterpret_cast(aClient.GetDuidLinkLayerAddress())); option.SetPreferredLifetime(OT_DHCP6_DEFAULT_PREFERRED_LIFETIME); option.SetValidLifetime(OT_DHCP6_DEFAULT_VALID_LIFETIME); SuccessOrExit(error = aMessage.Append(&option, sizeof(option)));