Skip to content

Commit

Permalink
Correct order of ossl_condvar_signal in quic_multistream_test
Browse files Browse the repository at this point in the history
quic_multistream test was issuing a signal on a condvar after dropping
the corresponding mutex, not before, leading to potential race
conditions in the reading of the associated data

Fixes #22588

Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from openssl/openssl#22616)

Signed-off-by: fly2x <fly2x@hitls.org>
  • Loading branch information
nhorman authored and fly2x committed Nov 12, 2023
1 parent 7e22f13 commit aef23dc
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions test/quic_multistream_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -497,8 +497,8 @@ static int join_server_thread(struct helper *h)

ossl_crypto_mutex_lock(h->server_thread.m);
h->server_thread.stop = 1;
ossl_crypto_mutex_unlock(h->server_thread.m);
ossl_crypto_condvar_signal(h->server_thread.c);
ossl_crypto_mutex_unlock(h->server_thread.m);

ossl_crypto_thread_native_join(h->server_thread.t, &rv);
ossl_crypto_thread_native_clean(h->server_thread.t);
Expand Down Expand Up @@ -1079,8 +1079,8 @@ static int run_script_worker(struct helper *h, const struct script_op *script,
else if (h->blocking && !h->server_thread.ready) {
ossl_crypto_mutex_lock(h->server_thread.m);
h->server_thread.ready = 1;
ossl_crypto_mutex_unlock(h->server_thread.m);
ossl_crypto_condvar_signal(h->server_thread.c);
ossl_crypto_mutex_unlock(h->server_thread.m);
}
if (h->blocking)
assert(h->s == NULL);
Expand Down Expand Up @@ -2658,8 +2658,8 @@ static int script_20_trigger(struct helper *h, volatile uint64_t *counter)
#if defined(OPENSSL_THREADS)
ossl_crypto_mutex_lock(h->misc_m);
++*counter;
ossl_crypto_mutex_unlock(h->misc_m);
ossl_crypto_condvar_broadcast(h->misc_cv);
ossl_crypto_mutex_unlock(h->misc_m);
#endif
return 1;
}
Expand Down

0 comments on commit aef23dc

Please sign in to comment.