diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-06-25 09:57:26 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-06-25 09:57:26 -0700 |
| commit | baba9825f11aa6759fccecbf92b4d25fb41be5ec (patch) | |
| tree | 616001e97023308e566155818a0b5d872e55a8a8 /src/core | |
| parent | cabebe8bc26d7a01f51e8daf9640f038378547f3 (diff) | |
| download | nng-baba9825f11aa6759fccecbf92b4d25fb41be5ec.tar.gz nng-baba9825f11aa6759fccecbf92b4d25fb41be5ec.tar.bz2 nng-baba9825f11aa6759fccecbf92b4d25fb41be5ec.zip | |
Fix a few race condition panics.
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/pipe.c | 2 | ||||
| -rw-r--r-- | src/core/socket.c | 3 |
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); |
