From f12a2f741de03c7ecb59214289b1aab99d5e1cdb Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Wed, 27 Aug 2014 20:15:45 -0700 Subject: [PATCH] Make sure hdr.size is always set Otherwise we can end up generating strange CRCs. --- src/uas/QGCUASFileManager.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/uas/QGCUASFileManager.cc b/src/uas/QGCUASFileManager.cc index b28858d76..3541deaf5 100644 --- a/src/uas/QGCUASFileManager.cc +++ b/src/uas/QGCUASFileManager.cc @@ -78,6 +78,9 @@ QGCUASFileManager::QGCUASFileManager(QObject* parent, UASInterface* uas, uint8_t connect(&_ackTimer, &QTimer::timeout, this, &QGCUASFileManager::_ackTimeout); _systemIdServer = _mav->getUASID(); + + // Make sure we don't have bad structure packing + Q_ASSERT(sizeof(RequestHeader) == 12); } /// @brief Calculates a 32 bit CRC for the specified request. @@ -184,6 +187,7 @@ void QGCUASFileManager::_readAckResponse(Request* readAck) request.hdr.session = _activeSession; request.hdr.opcode = kCmdRead; request.hdr.offset = _readOffset; + request.hdr.size = 0; _sendRequest(&request); } else { @@ -383,6 +387,7 @@ void QGCUASFileManager::_sendListCommand(void) request.hdr.session = 0; request.hdr.opcode = kCmdList; request.hdr.offset = _listOffset; + request.hdr.size = 0; _fillRequestWithString(&request, _listPath); @@ -417,6 +422,7 @@ void QGCUASFileManager::downloadPath(const QString& from, const QDir& downloadDi request.hdr.session = 0; request.hdr.opcode = kCmdOpen; request.hdr.offset = 0; + request.hdr.size = 0; _fillRequestWithString(&request, from); _sendRequest(&request); } @@ -519,6 +525,7 @@ void QGCUASFileManager::_sendTerminateCommand(void) Request request; request.hdr.session = _activeSession; request.hdr.opcode = kCmdTerminate; + request.hdr.size = 0; _sendRequest(&request); } -- 2.22.0