diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-11-15 13:27:46 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-11-15 13:27:46 +0000 |
| commit | 928de0934501565233b1fb25f225cb19b43f7d29 (patch) | |
| tree | ae23c4f696857a34f2c6627fb5afa98b27890311 /src/AsyncNameResolver.cc | |
| parent | 7b63e121c7f07b070f0ae3e48677b48e1e1fe137 (diff) | |
2009-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Copied in_addr instead of just casting from char* which might
violate strict aliasing rules.
* src/AsyncNameResolver.cc
Diffstat (limited to 'src/AsyncNameResolver.cc')
| -rw-r--r-- | src/AsyncNameResolver.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/AsyncNameResolver.cc b/src/AsyncNameResolver.cc index 311353ea..71dd88d4 100644 --- a/src/AsyncNameResolver.cc +++ b/src/AsyncNameResolver.cc @@ -56,8 +56,9 @@ void callback(void* arg, int status, struct hostent* host) return; } for(char** ap = host->h_addr_list; *ap; ++ap) { - resolverPtr->_resolvedAddresses.push_back - (inet_ntoa(*reinterpret_cast<struct in_addr*>(*ap))); + struct in_addr addr; + memcpy(&addr, *ap, sizeof(in_addr)); + resolverPtr->_resolvedAddresses.push_back(inet_ntoa(addr)); } resolverPtr->status = AsyncNameResolver::STATUS_SUCCESS; } |
