From 15c6108fe439be5ba3e0a1234bbc30c052bd50ce Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Mon, 27 Nov 2023 15:47:59 +0100 Subject: [PATCH] Fix data race condition detected by Coverity Scan --- .../gnuradio_blocks/galileo_telemetry_decoder_gs.cc | 1 + .../gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc index fbaaaa84f..a7ed36787 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc @@ -918,6 +918,7 @@ int galileo_telemetry_decoder_gs::general_work(int noutput_items __attribute__(( // check if there is a problem with the telemetry of the current satellite if (d_sent_tlm_failed_msg == false) { + gr::thread::scoped_lock lock(d_setlock); if ((d_symbol_counter - d_last_valid_preamble) > d_max_symbols_without_valid_frame) { const int message = 1; // bad telemetry diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc index 178eb8bd4..2229adc6c 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc @@ -464,6 +464,7 @@ int gps_l1_ca_telemetry_decoder_gs::general_work(int noutput_items __attribute__ // check if there is a problem with the telemetry of the current satellite if (d_stat < 2 && d_sent_tlm_failed_msg == false) { + gr::thread::scoped_lock lock(d_setlock); if ((d_sample_counter - d_last_valid_preamble) > d_max_symbols_without_valid_frame) { const int message = 1; // bad telemetry @@ -551,6 +552,7 @@ int gps_l1_ca_telemetry_decoder_gs::general_work(int noutput_items __attribute__ if (d_CRC_error_counter > 2) { DLOG(INFO) << "Lost of frame sync SAT " << this->d_satellite; + gr::thread::scoped_lock lock(d_setlock); d_flag_frame_sync = false; d_stat = 0; d_TOW_at_current_symbol_ms = 0;