Commit a1f6bbf6b0 for openssl.org
commit a1f6bbf6b0eb5bd15569b225bb0bd443fa879c9c
Author: Bernd Edlinger <bernd.edlinger@hotmail.de>
Date: Tue Sep 16 17:18:33 2025 +0200
Fix logic errors in torture_rw_high/low test
"old" was never assigned anything and the first
assignment to "*iterations" in the loop was superfluous.
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28574)
diff --git a/test/threadstest.c b/test/threadstest.c
index f8969032fe..c796300e6c 100644
--- a/test/threadstest.c
+++ b/test/threadstest.c
@@ -183,13 +183,16 @@ static void rwreader_fn(int *iterations)
CRYPTO_atomic_add(&rwwriter2_done, 0, &lw2, atomiclock);
count++;
- if (rwwriter_ptr != NULL && old > *rwwriter_ptr) {
- TEST_info("rwwriter pointer went backwards\n");
- rw_torture_result = 0;
+ if (rwwriter_ptr != NULL) {
+ if (old > *rwwriter_ptr) {
+ TEST_info("rwwriter pointer went backwards! %d : %d\n",
+ old, *rwwriter_ptr);
+ rw_torture_result = 0;
+ }
+ old = *rwwriter_ptr;
}
if (CRYPTO_THREAD_unlock(rwtorturelock) == 0)
abort();
- *iterations = count;
if (rw_torture_result == 0) {
*iterations = count;
return;