diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-12-26 18:33:06 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-12-26 18:33:06 -0800 |
| commit | 5183093c001c6e8687ea99c2e027f77f40657e70 (patch) | |
| tree | 3adcbbef644f2cda0f3721b1ba2813a0ce70b307 /src | |
| parent | c64d0e5309d060cf3726b1a41e85c12b2bc8b39d (diff) | |
| download | nng-5183093c001c6e8687ea99c2e027f77f40657e70.tar.gz nng-5183093c001c6e8687ea99c2e027f77f40657e70.tar.bz2 nng-5183093c001c6e8687ea99c2e027f77f40657e70.zip | |
fix for potential leaking connections
Diffstat (limited to 'src')
| -rw-r--r-- | src/sp/transport/socket/sockfd.c | 5 | ||||
| -rw-r--r-- | src/sp/transport/tcp/tcp.c | 5 | ||||
| -rw-r--r-- | src/sp/transport/tls/tls.c | 4 |
3 files changed, 12 insertions, 2 deletions
diff --git a/src/sp/transport/socket/sockfd.c b/src/sp/transport/socket/sockfd.c index b66687b3..82db1163 100644 --- a/src/sp/transport/socket/sockfd.c +++ b/src/sp/transport/socket/sockfd.c @@ -170,7 +170,10 @@ sfd_tran_pipe_nego_cb(void *arg) int rv; nni_mtx_lock(&ep->mtx); - + if (ep->closed) { + rv = NNG_ECLOSED; + goto error; + } if ((rv = nni_aio_result(aio)) != 0) { goto error; } diff --git a/src/sp/transport/tcp/tcp.c b/src/sp/transport/tcp/tcp.c index c8539c5e..3ce193c5 100644 --- a/src/sp/transport/tcp/tcp.c +++ b/src/sp/transport/tcp/tcp.c @@ -174,7 +174,10 @@ tcptran_pipe_nego_cb(void *arg) int rv; nni_mtx_lock(&ep->mtx); - + if (ep->closed) { + rv = NNG_ECLOSED; + goto error; + } if ((rv = nni_aio_result(aio)) != 0) { goto error; } diff --git a/src/sp/transport/tls/tls.c b/src/sp/transport/tls/tls.c index db301af3..c8926c41 100644 --- a/src/sp/transport/tls/tls.c +++ b/src/sp/transport/tls/tls.c @@ -175,6 +175,10 @@ tlstran_pipe_nego_cb(void *arg) int rv; nni_mtx_lock(&ep->mtx); + if (ep->closed) { + rv = NNG_ECLOSED; + goto error; + } if ((rv = nni_aio_result(aio)) != 0) { goto error; } |
