From: Peter van Dijk Date: Tue, 25 Jul 2017 12:17:23 +0000 (+0200) Subject: v6 works now X-Git-Tag: dnsdist-1.3.0~126^2~9 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=45fab880591a79b2e5a7f42d666905cd18877c37;p=pdns v6 works now --- diff --git a/pdns/iputils.hh b/pdns/iputils.hh index 9fb7fa346..de0cedf89 100644 --- a/pdns/iputils.hh +++ b/pdns/iputils.hh @@ -315,11 +315,19 @@ inline ComboAddress makeComboAddressFromRaw(uint8_t version, const string &str) ComboAddress address; size_t len; - if (version == 4) { len = 4; address.sin4.sin_family=AF_INET; } - else if (version == 6) { len = 16; address.sin4.sin_family=AF_INET6; } + if (version == 4) { + len = 4; + address.sin4.sin_family=AF_INET; + if(str.size() != len) throw NetmaskException("invalid raw address length"); + memcpy(&address.sin4.sin_addr, str.c_str(), len); + } + else if (version == 6) { + len = 16; + address.sin4.sin_family=AF_INET6; + if(str.size() != len) throw NetmaskException("invalid raw address length"); + memcpy(&address.sin6.sin6_addr, str.c_str(), len); + } else throw NetmaskException("invalid address family"); - if(str.size() != len) throw NetmaskException("invalid raw address length"); - memcpy(&address.sin4.sin_addr, str.c_str(), len); return address; }