aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-06-25 09:57:26 -0700
committerGarrett D'Amore <garrett@damore.org>2017-06-25 09:57:26 -0700
commitbaba9825f11aa6759fccecbf92b4d25fb41be5ec (patch)
tree616001e97023308e566155818a0b5d872e55a8a8 /src
parentcabebe8bc26d7a01f51e8daf9640f038378547f3 (diff)
downloadnng-baba9825f11aa6759fccecbf92b4d25fb41be5ec.tar.gz
nng-baba9825f11aa6759fccecbf92b4d25fb41be5ec.tar.bz2
nng-baba9825f11aa6759fccecbf92b4d25fb41be5ec.zip
Fix a few race condition panics.
Diffstat (limited to 'src')
-rw-r--r--src/core/pipe.c2
-rw-r--r--src/core/socket.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/src/core/pipe.c b/src/core/pipe.c
index 5d774e6d..f33f21a6 100644
--- a/src/core/pipe.c
+++ b/src/core/pipe.c
@@ -195,10 +195,10 @@ nni_pipe_create(nni_pipe **pp, nni_ep *ep, nni_sock *sock, nni_tran *tran)
if ((rv = nni_ep_pipe_add(ep, p)) != 0) {
nni_pipe_remove(p);
+ return (rv);
}
if ((rv = nni_sock_pipe_add(sock, p)) != 0) {
nni_pipe_remove(p);
- //nni_objhash_unref(nni_pipes, p->p_id);
return (rv);
}
diff --git a/src/core/socket.c b/src/core/socket.c
index 67b3f978..85b97363 100644
--- a/src/core/socket.c
+++ b/src/core/socket.c
@@ -141,6 +141,9 @@ nni_sock_pipe_remove(nni_sock *sock, nni_pipe *pipe)
{
void *pdata;
+ if (sock == NULL) {
+ return;
+ }
nni_mtx_lock(&sock->s_mx);
if (nni_list_active(&sock->s_pipes, pipe)) {
nni_list_remove(&sock->s_pipes, pipe);