summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwtc%netscape.com <devnull@localhost>2000-04-04 00:15:57 +0000
committerwtc%netscape.com <devnull@localhost>2000-04-04 00:15:57 +0000
commit94fcec6f2af51525ea5d2bd7a45ad0342ba92c0d (patch)
treed5d4bde634db48790675d06432f722bf7b44d431
parenta16f788abf298a0b99b8c6bf6de403791b8d29e1 (diff)
downloadnspr-hg-94fcec6f2af51525ea5d2bd7a45ad0342ba92c0d.tar.gz
Bugzilla bug #31049: Ipv6ToIpv4SocketAccept should handle a null 'addr'
argument. (NSPRPUB_CLIENT_BRANCH)
-rw-r--r--pr/src/io/pripv6.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/pr/src/io/pripv6.c b/pr/src/io/pripv6.c
index 485e449d..280b0bb4 100644
--- a/pr/src/io/pripv6.c
+++ b/pr/src/io/pripv6.c
@@ -149,6 +149,7 @@ static PRFileDesc* PR_CALLBACK Ipv6ToIpv4SocketAccept (
PRFileDesc *newfd;
PRFileDesc *newstack;
PRNetAddr tmp_ipv4addr;
+ PRNetAddr *addrlower = NULL;
PR_ASSERT(fd != NULL);
PR_ASSERT(fd->lower != NULL);
@@ -161,13 +162,16 @@ static PRFileDesc* PR_CALLBACK Ipv6ToIpv4SocketAccept (
}
*newstack = *fd; /* make a copy of the accepting layer */
- newfd = (fd->lower->methods->accept)(fd->lower, &tmp_ipv4addr, timeout);
+ if (addr)
+ addrlower = &tmp_ipv4addr;
+ newfd = (fd->lower->methods->accept)(fd->lower, addrlower, timeout);
if (NULL == newfd)
{
PR_DELETE(newstack);
return NULL;
}
- _PR_ConvertToIpv6NetAddr(&tmp_ipv4addr, addr);
+ if (addr)
+ _PR_ConvertToIpv6NetAddr(&tmp_ipv4addr, addr);
rv = PR_PushIOLayer(newfd, PR_TOP_IO_LAYER, newstack);
PR_ASSERT(PR_SUCCESS == rv);