From 527e7b56b60bbb2a8590f52823d4558bddc1c875 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Sun, 21 Sep 2025 13:12:26 -0400 Subject: [PATCH] MT#55283 lock payload tracker Change-Id: I22ef38f4b32ec6a710c7120378080d95dfa00b60 Warned-by: Coverity --- daemon/codec.c | 2 ++ daemon/ssrc.c | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/daemon/codec.c b/daemon/codec.c index fa195b18d..72673d5b0 100644 --- a/daemon/codec.c +++ b/daemon/codec.c @@ -3932,6 +3932,8 @@ static void __dtx_send_later(struct codec_timer *ct) { else { shutdown = true; // default if no last used PTs are known + LOCK(&se->tracker.lock); + for (int i = 0; i < G_N_ELEMENTS(se->tracker.last_pts); i++) { int pt_idx = se->tracker.last_pt_idx - i; pt_idx += G_N_ELEMENTS(se->tracker.last_pts); diff --git a/daemon/ssrc.c b/daemon/ssrc.c index e109387e3..4ef96e88c 100644 --- a/daemon/ssrc.c +++ b/daemon/ssrc.c @@ -651,7 +651,7 @@ void payload_tracker_add(struct payload_tracker *t, int pt) { if (G_UNLIKELY(pt < 0) || G_UNLIKELY(pt >= 128)) return; - mutex_lock(&t->lock); + LOCK(&t->lock); int pt_idx = (t->last_pt_idx + 1) % G_N_ELEMENTS(t->last_pts); t->last_pts[pt_idx] = pt; @@ -698,7 +698,6 @@ void payload_tracker_add(struct payload_tracker *t, int pt) { out: if (++t->last_idx >= G_N_ELEMENTS(t->last)) t->last_idx = 0; - mutex_unlock(&t->lock); }