diff options
| -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); |
