From 98248436848a926dfcde6808bb6f6350e24003e3 Mon Sep 17 00:00:00 2001 From: f4exb Date: Mon, 8 Jan 2018 00:37:15 +0100 Subject: [PATCH] PlutoSDR: fixed possible segfault when stopping one device in multiple stream confguration. --- debian/changelog | 1 + plugins/samplesink/plutosdroutput/plutosdroutput.cpp | 3 ++- plugins/samplesink/plutosdroutput/plutosdroutputplugin.cpp | 2 +- plugins/samplesource/plutosdrinput/plutosdrinput.cpp | 3 ++- plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp | 2 +- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index 58a962188..6e6402bb6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ sdrangel (3.10.1-1) unstable; urgency=medium * LimeSDR: fixed segfault when stopping one device in multiple stream confguration + * PlutoSDR: fixed segfault when stopping one device in multiple stream confguration -- Edouard Griffiths, F4EXB Sun, 07 Jan 2018 23:14:18 +0100 diff --git a/plugins/samplesink/plutosdroutput/plutosdroutput.cpp b/plugins/samplesink/plutosdroutput/plutosdroutput.cpp index 4255bdac0..8ad6cdaa2 100644 --- a/plugins/samplesink/plutosdroutput/plutosdroutput.cpp +++ b/plugins/samplesink/plutosdroutput/plutosdroutput.cpp @@ -230,7 +230,8 @@ bool PlutoSDROutput::openDevice() qDebug("PlutoSDROutput::openDevice: look at Rx buddy"); DeviceSourceAPI *sourceBuddy = m_deviceAPI->getSourceBuddies()[0]; - m_deviceShared = *((DevicePlutoSDRShared *) sourceBuddy->getBuddySharedPtr()); // copy parameters + DevicePlutoSDRShared* buddySharedPtr = (DevicePlutoSDRShared*) sourceBuddy->getBuddySharedPtr(); + m_deviceShared.m_deviceParams = buddySharedPtr->m_deviceParams; if (m_deviceShared.m_deviceParams == 0) { diff --git a/plugins/samplesink/plutosdroutput/plutosdroutputplugin.cpp b/plugins/samplesink/plutosdroutput/plutosdroutputplugin.cpp index 1d804f2c2..188cf223c 100644 --- a/plugins/samplesink/plutosdroutput/plutosdroutputplugin.cpp +++ b/plugins/samplesink/plutosdroutput/plutosdroutputplugin.cpp @@ -28,7 +28,7 @@ class DeviceSourceAPI; const PluginDescriptor PlutoSDROutputPlugin::m_pluginDescriptor = { QString("PlutoSDR Output"), - QString("3.9.0"), + QString("3.10.1"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/plutosdrinput/plutosdrinput.cpp b/plugins/samplesource/plutosdrinput/plutosdrinput.cpp index 4240ba02c..4e96fdf93 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinput.cpp +++ b/plugins/samplesource/plutosdrinput/plutosdrinput.cpp @@ -259,7 +259,8 @@ bool PlutoSDRInput::openDevice() qDebug("PlutoSDRInput::openDevice: look at Tx buddy"); DeviceSinkAPI *sinkBuddy = m_deviceAPI->getSinkBuddies()[0]; - m_deviceShared = *((DevicePlutoSDRShared *) sinkBuddy->getBuddySharedPtr()); // copy parameters + DevicePlutoSDRShared* buddySharedPtr = (DevicePlutoSDRShared*) sinkBuddy->getBuddySharedPtr(); + m_deviceShared.m_deviceParams = buddySharedPtr->m_deviceParams; if (m_deviceShared.m_deviceParams == 0) { diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp b/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp index 8085b59c1..7fedd308a 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp +++ b/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp @@ -28,7 +28,7 @@ class DeviceSourceAPI; const PluginDescriptor PlutoSDRInputPlugin::m_pluginDescriptor = { QString("PlutoSDR Input"), - QString("3.9.0"), + QString("3.10.1"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true,