summaryrefslogtreecommitdiff
path: root/src/sp/protocol
diff options
context:
space:
mode:
authorAleksei Solovev <solovalex@gmail.com>2024-12-08 15:54:13 +0300
committerGarrett D'Amore <garrett@damore.org>2024-12-08 17:47:35 -0800
commit7643626bcf38aee7cb9f44d518401047d1c34c76 (patch)
treec133ed48786d7bed42af7ae3c940e35a02380d6f /src/sp/protocol
parent9067535b2a04f632e8cc1850788942a9d68f2be0 (diff)
downloadnng-7643626bcf38aee7cb9f44d518401047d1c34c76.tar.gz
nng-7643626bcf38aee7cb9f44d518401047d1c34c76.tar.bz2
nng-7643626bcf38aee7cb9f44d518401047d1c34c76.zip
fixes #1959 Occasional SIGSEGV in nng_recv_aio() on a respondent socket
Diffstat (limited to 'src/sp/protocol')
-rw-r--r--src/sp/protocol/survey0/respond.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/sp/protocol/survey0/respond.c b/src/sp/protocol/survey0/respond.c
index 8a8c134b..c8733e32 100644
--- a/src/sp/protocol/survey0/respond.c
+++ b/src/sp/protocol/survey0/respond.c
@@ -334,6 +334,10 @@ resp0_pipe_close(void *arg)
nni_mtx_lock(&s->mtx);
p->closed = true;
+ if (nni_list_active(&s->recvpipes, p)) {
+ // We are no longer "receivable".
+ nni_list_remove(&s->recvpipes, p);
+ }
while ((ctx = nni_list_first(&p->sendq)) != NULL) {
nni_aio *aio;
nni_msg *msg;