Fixes a crash after returning from standby in localhostretriever. Reported and patched by Ingo Bauersachs.

cusax-fix
Damian Minkov 13 years ago
parent 03f2e135ba
commit 19edeb6f0c

@ -113,13 +113,16 @@ static int get_source_for_destination(struct sockaddr* dst, struct sockaddr_stor
if(dst->sa_family == AF_INET && (adapter->IfIndex == ifindex))
{
IP_ADAPTER_UNICAST_ADDRESS* unicast = adapter->FirstUnicastAddress;
struct sockaddr_in* addr = (struct sockaddr_in*)unicast->Address.lpSockaddr;
if(unicast != NULL)
{
struct sockaddr_in* addr = (struct sockaddr_in*)unicast->Address.lpSockaddr;
memcpy(src, addr, sizeof(struct sockaddr_in));
found = TRUE;
memcpy(src, addr, sizeof(struct sockaddr_in));
found = TRUE;
/* found source address, break the loop */
break;
/* found source address, break the loop */
break;
}
}
else if(dst->sa_family == AF_INET6 && (adapter->Ipv6IfIndex == ifindex))
{
@ -127,13 +130,16 @@ static int get_source_for_destination(struct sockaddr* dst, struct sockaddr_stor
* multiple global addresses (+ link-local address), handle this case
*/
IP_ADAPTER_UNICAST_ADDRESS* unicast = adapter->FirstUnicastAddress;
struct sockaddr_in6* addr = (struct sockaddr_in6*)unicast->Address.lpSockaddr;
if(unicast != NULL)
{
struct sockaddr_in6* addr = (struct sockaddr_in6*)unicast->Address.lpSockaddr;
memcpy(src, addr, sizeof(struct sockaddr_in6));
found = TRUE;
memcpy(src, addr, sizeof(struct sockaddr_in6));
found = TRUE;
/* found source address, break the loop */
break;
/* found source address, break the loop */
break;
}
}
adapter = adapter->Next;

@ -199,7 +199,11 @@ && getConfigService().getBoolean(
}
catch (Exception ex)
{
logger.error("Failed to instantiate " + cssClassName, ex);
logger.error("Failed to instantiate " + cssClassName + " reason:"
+ ex.getMessage());
if(logger.isDebugEnabled())
logger.debug("Failed to instantiate " + cssClassName, ex);
return;
}
try

Loading…
Cancel
Save