From 5971c8a7ee52265ef2408ee1a7a9d33cd9a5a492 Mon Sep 17 00:00:00 2001 From: f4exb Date: Thu, 13 Apr 2017 20:29:05 +0200 Subject: [PATCH] Airspy: fixed segfault when accessing non-initialized thread --- plugins/samplesource/airspy/airspyinput.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/samplesource/airspy/airspyinput.cpp b/plugins/samplesource/airspy/airspyinput.cpp index f0e290cc7..4a3a3487c 100644 --- a/plugins/samplesource/airspy/airspyinput.cpp +++ b/plugins/samplesource/airspy/airspyinput.cpp @@ -144,6 +144,10 @@ bool AirspyInput::start(int device) return false; } + m_airspyThread->setSamplerate(m_sampleRates[m_settings.m_devSampleRateIndex]); + m_airspyThread->setLog2Decimation(m_settings.m_log2Decim); + m_airspyThread->setFcPos((int) m_settings.m_fcPos); + m_airspyThread->startWork(); mutexLocker.unlock(); @@ -281,7 +285,7 @@ bool AirspyInput::applySettings(const AirspySettings& settings, bool force) { qCritical("AirspyInput::applySettings: could not set sample rate index %u (%d S/s): %s", m_settings.m_devSampleRateIndex, m_sampleRates[m_settings.m_devSampleRateIndex], airspy_error_name(rc)); } - else + else if (m_airspyThread != 0) { qDebug("AirspyInput::applySettings: sample rate set to index: %u (%d S/s)", m_settings.m_devSampleRateIndex, m_sampleRates[m_settings.m_devSampleRateIndex]); m_airspyThread->setSamplerate(m_sampleRates[m_settings.m_devSampleRateIndex]); @@ -294,7 +298,7 @@ bool AirspyInput::applySettings(const AirspySettings& settings, bool force) m_settings.m_log2Decim = settings.m_log2Decim; forwardChange = true; - if(m_dev != 0) + if (m_airspyThread != 0) { m_airspyThread->setLog2Decimation(m_settings.m_log2Decim); qDebug() << "AirspyInput: set decimation to " << (1<setFcPos((int) m_settings.m_fcPos); qDebug() << "AirspyInput: set fc pos (enum) to " << (int) m_settings.m_fcPos;