summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@theqtcompany.com>2015-12-18 14:12:29 +0100
committerAlex Blasche <alexander.blasche@theqtcompany.com>2015-12-18 13:24:02 +0000
commit2bb7b51463767233e4490dd25433c6c183da9192 (patch)
tree59e4e305cc474fd7a5ad7f5d2600322fec9e137d /src
parent8e8e27abaeb6fbf5bc9fdf6ca937aff74d21244c (diff)
Don't attempt to write an invalid QCanBusFrame
Change-Id: I9b73c9bdfe933a74302b4871aa40d5a025496b8c Reviewed-by: Rolf Eike Beer <eb@emlix.com> Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/canbus/peakcan/peakcanbackend.cpp5
-rw-r--r--src/plugins/canbus/socketcan/socketcanbackend.cpp5
-rw-r--r--src/plugins/canbus/tinycan/tinycanbackend.cpp5
3 files changed, 15 insertions, 0 deletions
diff --git a/src/plugins/canbus/peakcan/peakcanbackend.cpp b/src/plugins/canbus/peakcan/peakcanbackend.cpp
index 41d8763..3bea3f0 100644
--- a/src/plugins/canbus/peakcan/peakcanbackend.cpp
+++ b/src/plugins/canbus/peakcan/peakcanbackend.cpp
@@ -517,6 +517,11 @@ bool PeakCanBackend::writeFrame(const QCanBusFrame &newData)
if (state() != QCanBusDevice::ConnectedState)
return false;
+ if (!newData.isValid()) {
+ setError(tr("Cannot write invalid QCanBusFrame"), QCanBusDevice::WriteError);
+ return false;
+ }
+
if (newData.frameType() != QCanBusFrame::DataFrame
&& newData.frameType() != QCanBusFrame::RemoteRequestFrame) {
setError(tr("Unable to write a frame with unacceptable type"),
diff --git a/src/plugins/canbus/socketcan/socketcanbackend.cpp b/src/plugins/canbus/socketcan/socketcanbackend.cpp
index 49d641f..0105dae 100644
--- a/src/plugins/canbus/socketcan/socketcanbackend.cpp
+++ b/src/plugins/canbus/socketcan/socketcanbackend.cpp
@@ -319,6 +319,11 @@ bool SocketCanBackend::writeFrame(const QCanBusFrame &newData)
if (state() != ConnectedState)
return false;
+ if (!newData.isValid()) {
+ setError(tr("Cannot write invalid QCanBusFrame"), QCanBusDevice::WriteError);
+ return false;
+ }
+
canid_t canId = newData.frameId();
if (newData.hasExtendedFrameFormat())
canId |= CAN_EFF_FLAG;
diff --git a/src/plugins/canbus/tinycan/tinycanbackend.cpp b/src/plugins/canbus/tinycan/tinycanbackend.cpp
index 4924141..669c153 100644
--- a/src/plugins/canbus/tinycan/tinycanbackend.cpp
+++ b/src/plugins/canbus/tinycan/tinycanbackend.cpp
@@ -541,6 +541,11 @@ bool TinyCanBackend::writeFrame(const QCanBusFrame &newData)
if (state() != QCanBusDevice::ConnectedState)
return false;
+ if (!newData.isValid()) {
+ setError(tr("Cannot write invalid QCanBusFrame"), QCanBusDevice::WriteError);
+ return false;
+ }
+
if (newData.frameType() != QCanBusFrame::DataFrame
&& newData.frameType() != QCanBusFrame::RemoteRequestFrame
&& newData.frameType() != QCanBusFrame::ErrorFrame) {