diff options
author | Wilhelm Pflueger <Wilhelm.Pflueger@web.de> | 2011-03-21 14:14:39 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2011-03-21 14:14:39 +0000 |
commit | 7dae480d3a9932bf22859e0999c9b9181d388666 (patch) | |
tree | 6b15a92af4566f61742ab34b800f702cdd3aebe5 /sal/osl | |
parent | c97a89f8be34e3d9f47363435d0e4073201d8dc3 (diff) |
Tests in ure/sal/osl/socket unveiled SocketAddr comparison bug
Reenabled test unveiled a bug in socket.c when comparing socket
addresses.
Diffstat (limited to 'sal/osl')
-rw-r--r-- | sal/osl/unx/socket.c | 8 | ||||
-rw-r--r-- | sal/osl/w32/socket.cxx | 4 |
2 files changed, 10 insertions, 2 deletions
diff --git a/sal/osl/unx/socket.c b/sal/osl/unx/socket.c index 66f88c089adc..8beb70364647 100644 --- a/sal/osl/unx/socket.c +++ b/sal/osl/unx/socket.c @@ -594,11 +594,17 @@ sal_Bool SAL_CALL osl_isEqualSocketAddr ( oslSocketAddr Addr1, oslSocketAddr Addr2) { + OSL_ASSERT(Addr1); + OSL_ASSERT(Addr2); struct sockaddr* pAddr1= &(Addr1->m_sockaddr); struct sockaddr* pAddr2= &(Addr2->m_sockaddr); OSL_ASSERT(pAddr1); OSL_ASSERT(pAddr2); + if (pAddr1 == pAddr2) + { + return (sal_True); + } if (pAddr1->sa_family == pAddr2->sa_family) { @@ -617,7 +623,7 @@ sal_Bool SAL_CALL osl_isEqualSocketAddr ( default: { - return (memcmp(pAddr1, Addr2, sizeof(struct sockaddr)) == 0); + return (memcmp(pAddr1, pAddr2, sizeof(struct sockaddr)) == 0); } } } diff --git a/sal/osl/w32/socket.cxx b/sal/osl/w32/socket.cxx index 5cbfff593dc3..505507d61acf 100644 --- a/sal/osl/w32/socket.cxx +++ b/sal/osl/w32/socket.cxx @@ -564,6 +564,8 @@ oslSocketAddr SAL_CALL osl_copySocketAddr(oslSocketAddr Addr) /*****************************************************************************/ sal_Bool SAL_CALL osl_isEqualSocketAddr(oslSocketAddr Addr1, oslSocketAddr Addr2) { + OSL_ASSERT(Addr1); + OSL_ASSERT(Addr2); struct sockaddr* pAddr1= &(Addr1->m_sockaddr); struct sockaddr* pAddr2= &(Addr2->m_sockaddr); @@ -587,7 +589,7 @@ sal_Bool SAL_CALL osl_isEqualSocketAddr(oslSocketAddr Addr1, oslSocketAddr Addr2 default: { - return (memcmp(pAddr1, Addr2, sizeof(struct sockaddr)) == 0); + return (memcmp(pAddr1, pAddr2, sizeof(struct sockaddr)) == 0); } } } |