From 9098f26679637cc9fb3161575ee8479cfe0cfa05 Mon Sep 17 00:00:00 2001 From: srcejon Date: Tue, 27 Feb 2024 13:59:15 +0000 Subject: [PATCH] SDRplay: Prevent nullpointer dereference for #1825 --- .../samplesource/sdrplayv3/sdrplayv3gui.cpp | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/plugins/samplesource/sdrplayv3/sdrplayv3gui.cpp b/plugins/samplesource/sdrplayv3/sdrplayv3gui.cpp index 8f62cc751..9bb681ce9 100644 --- a/plugins/samplesource/sdrplayv3/sdrplayv3gui.cpp +++ b/plugins/samplesource/sdrplayv3/sdrplayv3gui.cpp @@ -320,23 +320,30 @@ void SDRPlayV3Gui::updateLNAValues() bool found = false; const int *attenuations = SDRPlayV3LNA::getAttenuations(m_sdrPlayV3Input->getDeviceId(), m_settings.m_centerFrequency); - int len = attenuations[0]; ui->gainLNA->blockSignals(true); ui->gainLNA->clear(); - for (int i = 1; i <= len; i++) + if (attenuations) { - if (attenuations[i] == 0) - ui->gainLNA->addItem("0"); - else - ui->gainLNA->addItem(QString("-%1").arg(attenuations[i])); - - // Find closest match - if ((attenuations[i] == -currentValue) || (!found && (attenuations[i] > -currentValue))) + int len = attenuations[0]; + for (int i = 1; i <= len; i++) { - ui->gainLNA->setCurrentIndex(i - 1); - found = true; + if (attenuations[i] == 0) + ui->gainLNA->addItem("0"); + else + ui->gainLNA->addItem(QString("-%1").arg(attenuations[i])); + + // Find closest match + if ((attenuations[i] == -currentValue) || (!found && (attenuations[i] > -currentValue))) + { + ui->gainLNA->setCurrentIndex(i - 1); + found = true; + } } } + else + { + qDebug() << "SDRPlayV3Gui::updateLNAValues: No attenuations for deviceID: " << m_sdrPlayV3Input->getDeviceId(); + } ui->gainLNA->blockSignals(false); }