aboutsummaryrefslogtreecommitdiff
path: root/src/sp
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2024-12-26 18:33:06 -0800
committerGarrett D'Amore <garrett@damore.org>2024-12-26 18:33:06 -0800
commit5183093c001c6e8687ea99c2e027f77f40657e70 (patch)
tree3adcbbef644f2cda0f3721b1ba2813a0ce70b307 /src/sp
parentc64d0e5309d060cf3726b1a41e85c12b2bc8b39d (diff)
downloadnng-5183093c001c6e8687ea99c2e027f77f40657e70.tar.gz
nng-5183093c001c6e8687ea99c2e027f77f40657e70.tar.bz2
nng-5183093c001c6e8687ea99c2e027f77f40657e70.zip
fix for potential leaking connections
Diffstat (limited to 'src/sp')
-rw-r--r--src/sp/transport/socket/sockfd.c5
-rw-r--r--src/sp/transport/tcp/tcp.c5
-rw-r--r--src/sp/transport/tls/tls.c4
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;
}