diff --git a/src/fsfw/cfdp/handler/PutRequest.cpp b/src/fsfw/cfdp/handler/PutRequest.cpp index 45fe016a..b3afda30 100644 --- a/src/fsfw/cfdp/handler/PutRequest.cpp +++ b/src/fsfw/cfdp/handler/PutRequest.cpp @@ -17,13 +17,16 @@ cfdp::PutRequest::PutRequest(cfdp::EntityId destId, const uint8_t *msgsToUser, ReturnValue_t cfdp::PutRequest::serialize(uint8_t **buffer, size_t *size, size_t maxSize, SerializeIF::Endianness streamEndianness) const { - ReturnValue_t result = destId.serialize(buffer, size, maxSize, streamEndianness); - if (result != OK) { - return result; + if(buffer == nullptr or size == nullptr) { + return FAILED; } if (*size + getSerializedSize() > maxSize) { return SerializeIF::BUFFER_TOO_SHORT; } + ReturnValue_t result = destId.serialize(buffer, size, maxSize, streamEndianness); + if (result != OK) { + return result; + } result = SerializeAdapter::serialize(&metadataOnly, buffer, size, maxSize, streamEndianness); if (result != OK) { return result; @@ -152,7 +155,7 @@ ReturnValue_t cfdp::PutRequest::deSerialize(const uint8_t **buffer, size_t *size } size_t cfdp::PutRequest::getSerializedSize() const { - size_t baseSize = destId.getSerializedSize() + 1; + size_t baseSize = 1 + destId.getSerializedSize(); if (!metadataOnly) { baseSize += sizeof(sourceNameSize) + sourceNameSize + sizeof(destNameSize) + destNameSize + 2; } @@ -164,5 +167,5 @@ size_t cfdp::PutRequest::getSerializedSize() const { void cfdp::PutRequest::setSourceAndDestName(cfdp::StringLv &sourceName_, cfdp::StringLv &destName_) { this->sourceName = sourceName_.getString(sourceNameSize); - this->destName = destName_.getString(sourceNameSize); + this->destName = destName_.getString(destNameSize); }