From 099aa72fa2a2fac5a342cb82f886d0566545f897 Mon Sep 17 00:00:00 2001 From: f4exb Date: Thu, 20 Apr 2017 23:32:08 +0200 Subject: [PATCH] LimeSDR: fix segfault when trying to get status on the uninitialized stream --- plugins/samplesource/limesdrinput/limesdrinput.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/samplesource/limesdrinput/limesdrinput.cpp b/plugins/samplesource/limesdrinput/limesdrinput.cpp index b86cf4192..9ac0f31e3 100644 --- a/plugins/samplesource/limesdrinput/limesdrinput.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinput.cpp @@ -43,6 +43,7 @@ LimeSDRInput::LimeSDRInput(DeviceSourceAPI *deviceAPI) : m_running(false), m_firstConfig(true) { + m_streamId.handle = 0; openDevice(); } @@ -223,6 +224,7 @@ void LimeSDRInput::closeDevice() // destroy the stream LMS_DestroyStream(m_deviceShared.m_deviceParams->getDevice(), &m_streamId); + m_streamId.handle = 0; // release the channel @@ -383,7 +385,7 @@ bool LimeSDRInput::handleMessage(const Message& message) // qDebug() << "LimeSDRInput::handleMessage: MsgGetStreamInfo"; lms_stream_status_t status; - if (LMS_GetStreamStatus(&m_streamId, &status) < 0) + if (m_streamId.handle && (LMS_GetStreamStatus(&m_streamId, &status) < 0)) { // qDebug("LimeSDRInput::handleMessage: canot get stream status"); MsgReportStreamInfo *report = MsgReportStreamInfo::create(