|
@@ -114,7 +114,7 @@ struct AK::Traits<DHCPOption> : public GenericTraits<DHCPOption> {
|
|
|
|
|
|
struct ParsedDHCPv4Options {
|
|
struct ParsedDHCPv4Options {
|
|
template<typename T>
|
|
template<typename T>
|
|
- Optional<const T> get(DHCPOption option_name) const
|
|
|
|
|
|
+ Optional<const T> get(DHCPOption option_name) const requires(IsTriviallyCopyable<T>)
|
|
{
|
|
{
|
|
auto option = options.get(option_name);
|
|
auto option = options.get(option_name);
|
|
if (!option.has_value()) {
|
|
if (!option.has_value()) {
|
|
@@ -123,7 +123,9 @@ struct ParsedDHCPv4Options {
|
|
auto& value = option.value();
|
|
auto& value = option.value();
|
|
if (value.length != sizeof(T))
|
|
if (value.length != sizeof(T))
|
|
return {};
|
|
return {};
|
|
- return *(const T*)value.value;
|
|
|
|
|
|
+ T t;
|
|
|
|
+ __builtin_memcpy(&t, value.value, value.length);
|
|
|
|
+ return t;
|
|
}
|
|
}
|
|
|
|
|
|
template<typename T>
|
|
template<typename T>
|