diff --git a/src/shared/trk/launcher.cpp b/src/shared/trk/launcher.cpp
index 799ff57d8a0743c57cfc4c3efa06961cacecbc12..697498ece3d10b51f831b8e6fdd5d3cb4938047a 100644
--- a/src/shared/trk/launcher.cpp
+++ b/src/shared/trk/launcher.cpp
@@ -280,7 +280,7 @@ void Launcher::handleResult(const TrkResult &result)
 
 void Launcher::handleTrkVersion(const TrkResult &result)
 {
-    if (result.data.size() < 5)
+    if (result.errorCode() || result.data.size() < 5)
         return;
     const int trkMajor = result.data.at(1);
     const int trkMinor = result.data.at(2);
@@ -353,6 +353,8 @@ void Launcher::handleFileCreated(const TrkResult &result)
 void Launcher::handleCpuType(const TrkResult &result)
 {
     logMessage("HANDLE CPU TYPE: " + result.toString());
+    if(result.errorCode() || result.data.size() < 7)
+        return;
     //---TRK------------------------------------------------------
     //  Command: 0x80 Acknowledge
     //    Error: 0x00
@@ -402,6 +404,8 @@ void Launcher::handleWaitForFinished(const TrkResult &result)
 
 void Launcher::handleSupportMask(const TrkResult &result)
 {
+    if (result.errorCode() || result.data.size() < 32)
+        return;
     const char *data = result.data.data() + 1;
 
     QByteArray str;