summaryrefslogtreecommitdiff
path: root/sal/osl
diff options
context:
space:
mode:
authorWilhelm Pflueger <Wilhelm.Pflueger@web.de>2011-03-21 14:14:39 +0000
committerCaolán McNamara <caolanm@redhat.com>2011-03-21 14:14:39 +0000
commit7dae480d3a9932bf22859e0999c9b9181d388666 (patch)
tree6b15a92af4566f61742ab34b800f702cdd3aebe5 /sal/osl
parentc97a89f8be34e3d9f47363435d0e4073201d8dc3 (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.c8
-rw-r--r--sal/osl/w32/socket.cxx4
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);
}
}
}