diff options
author | Benny Prijono <bennylp@teluu.com> | 2009-12-10 04:56:26 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2009-12-10 04:56:26 +0000 |
commit | d6a96e877ad72c410af8e48f1c13ab4bb64c0443 (patch) | |
tree | 0acc2ec83470e7113ff36045fd5ae424d8fdf3a9 /pjlib | |
parent | b4bea169655fbc81ac042dfbdf34ede2c319f41c (diff) |
More ticket #1000 (IPv6 interface enumeration fails due to typo error in Windows targets):
- fixed crash if GetAdaptersAddresses() returns adapter with NULL "firstUnicastAddress". This happens when the interface is disabled.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3030 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjlib')
-rw-r--r-- | pjlib/src/pj/ip_helper_win32.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/pjlib/src/pj/ip_helper_win32.c b/pjlib/src/pj/ip_helper_win32.c index dcfbed9c..56d292e4 100644 --- a/pjlib/src/pj/ip_helper_win32.c +++ b/pjlib/src/pj/ip_helper_win32.c @@ -237,9 +237,11 @@ static pj_status_t enum_ipv4_ipv6_interface(int af, return PJ_RETURN_OS_ERROR(rc); for (i=0; i<*p_cnt && adapter; ++i, adapter = adapter->Next) { - SOCKET_ADDRESS *pAddr = &adapter->FirstUnicastAddress->Address; - ifs[i].addr.sa_family = pAddr->lpSockaddr->sa_family; - pj_memcpy(&ifs[i], pAddr->lpSockaddr, pAddr->iSockaddrLength); + if (adapter->FirstUnicastAddress) { + SOCKET_ADDRESS *pAddr = &adapter->FirstUnicastAddress->Address; + ifs[i].addr.sa_family = pAddr->lpSockaddr->sa_family; + pj_memcpy(&ifs[i], pAddr->lpSockaddr, pAddr->iSockaddrLength); + } } *p_cnt = i; |