s4:lib/tls: assert that event contexts are not mixed
authorStefan Metzmacher <metze@samba.org>
Fri, 26 Jan 2024 14:30:09 +0000 (15:30 +0100)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 23 Apr 2024 23:50:33 +0000 (23:50 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15621

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/lib/tls/tls_tstream.c

index 364bb42107864a67611170535071580851a0d42b..347c47ed48eb14bdd30c258a371e61dce461f80b 100644 (file)
@@ -414,6 +414,12 @@ static struct tevent_req *tstream_tls_readv_send(TALLOC_CTX *mem_ctx,
        struct tstream_tls_readv_state *state;
 
        tlss->read.req = NULL;
+
+       if (tlss->current_ev != ev) {
+               SMB_ASSERT(tlss->push.subreq == NULL);
+               SMB_ASSERT(tlss->pull.subreq == NULL);
+       }
+
        tlss->current_ev = ev;
 
        req = tevent_req_create(mem_ctx, &state,
@@ -578,6 +584,12 @@ static struct tevent_req *tstream_tls_writev_send(TALLOC_CTX *mem_ctx,
        struct tstream_tls_writev_state *state;
 
        tlss->write.req = NULL;
+
+       if (tlss->current_ev != ev) {
+               SMB_ASSERT(tlss->push.subreq == NULL);
+               SMB_ASSERT(tlss->pull.subreq == NULL);
+       }
+
        tlss->current_ev = ev;
 
        req = tevent_req_create(mem_ctx, &state,
@@ -744,6 +756,12 @@ static struct tevent_req *tstream_tls_disconnect_send(TALLOC_CTX *mem_ctx,
        struct tstream_tls_disconnect_state *state;
 
        tlss->disconnect.req = NULL;
+
+       if (tlss->current_ev != ev) {
+               SMB_ASSERT(tlss->push.subreq == NULL);
+               SMB_ASSERT(tlss->pull.subreq == NULL);
+       }
+
        tlss->current_ev = ev;
 
        req = tevent_req_create(mem_ctx, &state,