From 9193062e70a23f3102dd3ed11ee8e39b14754e3d Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Fri, 14 Oct 2011 14:58:41 +0000 Subject: [PATCH] tcp_wrap: add sanity check asserts --- src/tcp_wrap.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/tcp_wrap.cc b/src/tcp_wrap.cc index 8d36a22bca..1303246a0a 100644 --- a/src/tcp_wrap.cc +++ b/src/tcp_wrap.cc @@ -5,6 +5,8 @@ #include #include +#include + // Temporary hack: libuv should provide uv_inet_pton and uv_inet_ntop. #if defined(__MINGW32__) || defined(_MSC_VER) extern "C" { @@ -150,6 +152,7 @@ Handle TCPWrap::GetSockName(const Arguments& args) { SetErrno(uv_last_error(uv_default_loop()).code); } else { family = address.ss_family; + if (family == AF_INET) { struct sockaddr_in* addrin = (struct sockaddr_in*)&address; uv_inet_ntop(AF_INET, &(addrin->sin_addr), ip, INET6_ADDRSTRLEN); @@ -158,6 +161,9 @@ Handle TCPWrap::GetSockName(const Arguments& args) { struct sockaddr_in6* addrin6 = (struct sockaddr_in6*)&address; uv_inet_ntop(AF_INET6, &(addrin6->sin6_addr), ip, INET6_ADDRSTRLEN); port = ntohs(addrin6->sin6_port); + } else { + assert(0 && "bad address family"); + abort(); } sockname->Set(port_symbol, Integer::New(port)); @@ -188,6 +194,7 @@ Handle TCPWrap::GetPeerName(const Arguments& args) { SetErrno(uv_last_error(uv_default_loop()).code); } else { family = address.ss_family; + if (family == AF_INET) { struct sockaddr_in* addrin = (struct sockaddr_in*)&address; uv_inet_ntop(AF_INET, &(addrin->sin_addr), ip, INET6_ADDRSTRLEN); @@ -196,6 +203,9 @@ Handle TCPWrap::GetPeerName(const Arguments& args) { struct sockaddr_in6* addrin6 = (struct sockaddr_in6*)&address; uv_inet_ntop(AF_INET6, &(addrin6->sin6_addr), ip, INET6_ADDRSTRLEN); port = ntohs(addrin6->sin6_port); + } else { + assert(0 && "bad address family"); + abort(); } sockname->Set(port_symbol, Integer::New(port));