From: Jaroslav Kysela Date: Fri, 23 Feb 2018 13:46:01 +0000 (+0100) Subject: mpegts input: fix mi_last_dispatch atomicity (cclang sanitizer) X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7616244716f299a1b4734538beaef86c9f944b52;p=thirdparty%2Ftvheadend.git mpegts input: fix mi_last_dispatch atomicity (cclang sanitizer) --- diff --git a/src/input/mpegts/mpegts_input.c b/src/input/mpegts/mpegts_input.c index a7da2dd11..e0f2b5d5d 100644 --- a/src/input/mpegts/mpegts_input.c +++ b/src/input/mpegts/mpegts_input.c @@ -936,7 +936,7 @@ mpegts_input_started_mux tsdebug_started_mux(mi, mm); /* Deliver first TS packets as fast as possible */ - mi->mi_last_dispatch = 0; + atomic_set_s64(&mi->mi_last_dispatch, 0); /* Arm timer */ if (LIST_FIRST(&mi->mi_mux_active) == NULL) @@ -1145,10 +1145,10 @@ retry: len = sb->sb_ptr; if (len < (MIN_TS_PKT * 188) && (flags & MPEGTS_DATA_CC_RESTART) == 0) { /* For slow streams, check also against the clock */ - if (monocmpfastsec(mclk(), mi->mi_last_dispatch)) + if (monocmpfastsec(mclk(), atomic_add_s64(&mi->mi_last_dispatch, 0))) return; } - mi->mi_last_dispatch = mclk(); + atomic_set_s64(&mi->mi_last_dispatch, mclk()); /* Check for sync */ while ( (len >= MIN_TS_SYN) &&