From: Martin Wilck <mwilck@xxxxxxxx> Defect reported by coverity (413383 Data race condition) Signed-off-by: Martin Wilck <mwilck@xxxxxxxx> --- libmultipath/checkers/tur.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libmultipath/checkers/tur.c b/libmultipath/checkers/tur.c index eb2fca1..2800446 100644 --- a/libmultipath/checkers/tur.c +++ b/libmultipath/checkers/tur.c @@ -438,9 +438,12 @@ int libcheck_check(struct checker * c) } tur_timeout(&tsp); pthread_mutex_lock(&ct->lock); - if (ct->state == PATH_PENDING && ct->msgid == MSG_TUR_RUNNING) - r = pthread_cond_timedwait(&ct->active, &ct->lock, - &tsp); + + for (r = 0; + r == 0 && ct->state == PATH_PENDING && + ct->msgid == MSG_TUR_RUNNING; + r = pthread_cond_timedwait(&ct->active, &ct->lock, &tsp)); + if (!r) { tur_status = ct->state; c->msgid = ct->msgid; -- 2.43.0