Merge pull request 'Added some precautions in DHB::replyToReply' (#435) from gaisser/fsfw:gaisser_overflow_avoid_dhb into development
Reviewed-on: fsfw/fsfw#435
This commit is contained in:
commit
05edb7a00c
@ -591,9 +591,20 @@ void DeviceHandlerBase::replyToReply(const DeviceCommandId_t command, DeviceRepl
|
|||||||
//Is most likely periodic reply. Silent return.
|
//Is most likely periodic reply. Silent return.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Check if more replies are expected. If so, do nothing.
|
|
||||||
DeviceCommandInfo* info = &replyInfo.command->second;
|
DeviceCommandInfo* info = &replyInfo.command->second;
|
||||||
if (--info->expectedReplies == 0) {
|
if (info == nullptr){
|
||||||
|
printWarningOrError(sif::OutputTypes::OUT_ERROR,
|
||||||
|
"replyToReply", HasReturnvaluesIF::RETURN_FAILED,
|
||||||
|
"Command pointer not found");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (info->expectedReplies > 0){
|
||||||
|
// Check before to avoid underflow
|
||||||
|
info->expectedReplies--;
|
||||||
|
}
|
||||||
|
// Check if more replies are expected. If so, do nothing.
|
||||||
|
if (info->expectedReplies == 0) {
|
||||||
// Check if it was transition or internal command.
|
// Check if it was transition or internal command.
|
||||||
// Don't send any replies in that case.
|
// Don't send any replies in that case.
|
||||||
if (info->sendReplyTo != NO_COMMANDER) {
|
if (info->sendReplyTo != NO_COMMANDER) {
|
||||||
|
Loading…
Reference in New Issue
Block a user