diff options
author | wchang0222%aol.com <devnull@localhost> | 2003-12-23 05:18:10 +0000 |
---|---|---|
committer | wchang0222%aol.com <devnull@localhost> | 2003-12-23 05:18:10 +0000 |
commit | 470505c169e4f8b55c6afaf106a39c812dee836f (patch) | |
tree | e5a2d00f160def09270d58a70772fe99cc1d3617 /pr | |
parent | d8460927fd099c2fb66cb711675f75e8e40733c2 (diff) | |
download | nspr-hg-470505c169e4f8b55c6afaf106a39c812dee836f.tar.gz |
Synched up the NSPRPUB_PRE_4_2_CLIENT_BRANCH with the tip.
Diffstat (limited to 'pr')
-rw-r--r-- | pr/src/bthreads/btmon.c | 5 | ||||
-rw-r--r-- | pr/src/md/windows/ntio.c | 17 | ||||
-rw-r--r-- | pr/src/pthreads/ptsynch.c | 3 | ||||
-rw-r--r-- | pr/src/threads/prmon.c | 3 | ||||
-rw-r--r-- | pr/tests/vercheck.c | 10 |
5 files changed, 28 insertions, 10 deletions
diff --git a/pr/src/bthreads/btmon.c b/pr/src/bthreads/btmon.c index da588c3a..5f88ad34 100644 --- a/pr/src/bthreads/btmon.c +++ b/pr/src/bthreads/btmon.c @@ -78,7 +78,10 @@ PR_IMPLEMENT(PRMonitor*) PR_IMPLEMENT(PRMonitor*) PR_NewNamedMonitor(const char* name) { PRMonitor* mon = PR_NewMonitor(); - mon->name = name; + if( mon ) + { + mon->name = name; + } return mon; } diff --git a/pr/src/md/windows/ntio.c b/pr/src/md/windows/ntio.c index e206f787..345e253a 100644 --- a/pr/src/md/windows/ntio.c +++ b/pr/src/md/windows/ntio.c @@ -1332,6 +1332,7 @@ _PR_MD_FAST_ACCEPT(PRFileDesc *fd, PRNetAddr *raddr, PRUint32 *rlen, me->flags &= ~_PR_INTERRUPT; PR_SetError(PR_PENDING_INTERRUPT_ERROR, 0); _PR_THREAD_UNLOCK(me); + closesocket(accept_sock); return -1; } me->io_pending = PR_TRUE; @@ -1350,6 +1351,7 @@ _PR_MD_FAST_ACCEPT(PRFileDesc *fd, PRNetAddr *raddr, PRUint32 *rlen, if ( (rv == 0) && ((err = GetLastError()) != ERROR_IO_PENDING)) { /* Argh! The IO failed */ + closesocket(accept_sock); _PR_THREAD_LOCK(me); me->io_pending = PR_FALSE; me->state = _PR_RUNNING; @@ -1369,12 +1371,14 @@ _PR_MD_FAST_ACCEPT(PRFileDesc *fd, PRNetAddr *raddr, PRUint32 *rlen, _native_thread_io_nowait(me, rv, bytes); } else if (_NT_IO_WAIT(me, timeout) == PR_FAILURE) { PR_ASSERT(0); + closesocket(accept_sock); return -1; } PR_ASSERT(me->io_pending == PR_FALSE || me->io_suspended == PR_TRUE); if (me->io_suspended) { + closesocket(accept_sock); if (_PR_PENDING_INTERRUPT(me)) { me->flags &= ~_PR_INTERRUPT; PR_SetError(PR_PENDING_INTERRUPT_ERROR, 0); @@ -1385,6 +1389,7 @@ _PR_MD_FAST_ACCEPT(PRFileDesc *fd, PRNetAddr *raddr, PRUint32 *rlen, } if (me->md.blocked_io_status == 0) { + closesocket(accept_sock); _PR_MD_MAP_ACCEPTEX_ERROR(me->md.blocked_io_error); return -1; } @@ -1450,6 +1455,7 @@ _PR_MD_FAST_ACCEPT_READ(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr, me->flags &= ~_PR_INTERRUPT; PR_SetError(PR_PENDING_INTERRUPT_ERROR, 0); _PR_THREAD_UNLOCK(me); + closesocket(*newSock); return -1; } me->io_pending = PR_TRUE; @@ -1467,6 +1473,7 @@ _PR_MD_FAST_ACCEPT_READ(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr, &(me->md.overlapped.overlapped)); if ( (rv == 0) && ((err = GetLastError()) != ERROR_IO_PENDING)) { + closesocket(*newSock); _PR_THREAD_LOCK(me); me->io_pending = PR_FALSE; me->state = _PR_RUNNING; @@ -1486,6 +1493,7 @@ _PR_MD_FAST_ACCEPT_READ(PRFileDesc *sd, PRInt32 *newSock, PRNetAddr **raddr, _native_thread_io_nowait(me, rv, bytes); } else if (_NT_IO_WAIT(me, timeout) == PR_FAILURE) { PR_ASSERT(0); + closesocket(*newSock); return -1; } @@ -1515,8 +1523,10 @@ retry: callback(callbackArg); madeCallback = PR_TRUE; me->state = _PR_IO_WAIT; - if (_NT_ResumeIO(me, timeout) == PR_FAILURE) + if (_NT_ResumeIO(me, timeout) == PR_FAILURE) { + closesocket(*newSock); return -1; + } goto retry; } @@ -1524,8 +1534,10 @@ retry: /* Socket is connected but time not elapsed, RESUME IO */ timeout -= elapsed; me->state = _PR_IO_WAIT; - if (_NT_ResumeIO(me, timeout) == PR_FAILURE) + if (_NT_ResumeIO(me, timeout) == PR_FAILURE) { + closesocket(*newSock); return -1; + } goto retry; } } else { @@ -1552,6 +1564,7 @@ retry: PR_SetError(PR_IO_TIMEOUT_ERROR, 0); } me->state = _PR_RUNNING; + closesocket(*newSock); return -1; } diff --git a/pr/src/pthreads/ptsynch.c b/pr/src/pthreads/ptsynch.c index 17334af3..ae1eb0da 100644 --- a/pr/src/pthreads/ptsynch.c +++ b/pr/src/pthreads/ptsynch.c @@ -471,7 +471,8 @@ PR_IMPLEMENT(PRMonitor*) PR_NewMonitor(void) PR_IMPLEMENT(PRMonitor*) PR_NewNamedMonitor(const char* name) { PRMonitor* mon = PR_NewMonitor(); - mon->name = name; + if (mon) + mon->name = name; return mon; } diff --git a/pr/src/threads/prmon.c b/pr/src/threads/prmon.c index 24205ec2..f9c12be0 100644 --- a/pr/src/threads/prmon.c +++ b/pr/src/threads/prmon.c @@ -68,7 +68,8 @@ PR_IMPLEMENT(PRMonitor*) PR_NewMonitor() PR_IMPLEMENT(PRMonitor*) PR_NewNamedMonitor(const char* name) { PRMonitor* mon = PR_NewMonitor(); - mon->name = name; + if (mon) + mon->name = name; return mon; } diff --git a/pr/tests/vercheck.c b/pr/tests/vercheck.c index 093ab673..0e32ef53 100644 --- a/pr/tests/vercheck.c +++ b/pr/tests/vercheck.c @@ -49,13 +49,13 @@ #include <stdlib.h> /* - * This release (4.4) is backward compatible with the - * 4.0.x, 4.1.x, 4.2.x, and 4.3.x releases. It, of course, + * This release (4.5) is backward compatible with the + * 4.0.x, 4.1.x, 4.2.x, 4.3.x, and 4.4.x releases. It, of course, * is compatible with itself. */ static char *compatible_version[] = { "4.0", "4.0.1", "4.1", "4.1.1", "4.1.2", "4.1.3", - "4.2", "4.2.1", "4.2.2", "4.3", PR_VERSION + "4.2", "4.2.1", "4.2.2", "4.3", "4.4", "4.4.1", PR_VERSION }; /* @@ -70,8 +70,8 @@ static char *incompatible_version[] = { "3.0", "3.0.1", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.5", "3.5.1", - "4.4.3", - "4.5", "4.5.1", + "4.5.3", + "4.6", "4.6.1", "10.0", "11.1", "12.14.20" }; |