Skip to content

Commit

Permalink
Fix #2488, separate bad argument test
Browse files Browse the repository at this point in the history
Pass in CFE_SB_INVALID_MSG_ID separately from a NULL pointer.
This also required updates to the way the MSG module checks the
MsgID, as it was not using the IsValidMsgID check.
  • Loading branch information
jphickey committed Dec 19, 2023
1 parent 7f5ebcd commit f83135a
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 5 deletions.
8 changes: 5 additions & 3 deletions modules/cfe_testcase/src/msg_api_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
*/

#include "cfe_test.h"
#include "cfe_test_msgids.h"
#include <string.h>

void TestMsgApiBasic(void)
Expand All @@ -46,10 +47,11 @@ void TestMsgApiBasic(void)
bool _returned = false;

memset(&cmd, 0xFF, sizeof(cmd));
msgId = CFE_SB_ValueToMsgId(1);
msgId = CFE_SB_ValueToMsgId(CFE_TEST_CMD_MID);

/* test msg-init */
UtAssert_INT32_EQ(CFE_MSG_Init(NULL, CFE_SB_INVALID_MSG_ID, sizeof(cmd)), CFE_MSG_BAD_ARGUMENT);
UtAssert_INT32_EQ(CFE_MSG_Init(NULL, msgId, sizeof(cmd)), CFE_MSG_BAD_ARGUMENT);
UtAssert_INT32_EQ(CFE_MSG_Init(CFE_MSG_PTR(cmd), CFE_SB_INVALID_MSG_ID, sizeof(cmd)), CFE_MSG_BAD_ARGUMENT);
UtAssert_INT32_EQ(CFE_MSG_Init(CFE_MSG_PTR(cmd), msgId, 0), CFE_MSG_BAD_ARGUMENT);
UtAssert_INT32_EQ(
CFE_MSG_Init(CFE_MSG_PTR(cmd), CFE_SB_ValueToMsgId(CFE_PLATFORM_SB_HIGHEST_VALID_MSGID + 1), sizeof(cmd)),
Expand Down Expand Up @@ -135,7 +137,7 @@ void TestMsgApiAdvanced(void)
CFE_MSG_SequenceCount_t seqCnt;

memset(&cmd, 0xFF, sizeof(cmd));
msgId = CFE_SB_INVALID_MSG_ID;
msgId = CFE_SB_ValueToMsgId(CFE_TEST_CMD_MID);

UtAssert_INT32_EQ(CFE_MSG_Init(CFE_MSG_PTR(cmd), msgId, sizeof(cmd)), CFE_SUCCESS);

Expand Down
2 changes: 1 addition & 1 deletion modules/msg/fsw/src/cfe_msg_msgid_v1.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ CFE_Status_t CFE_MSG_SetMsgId(CFE_MSG_Message_t *MsgPtr, CFE_SB_MsgId_t MsgId)
{
CFE_SB_MsgId_Atom_t msgidval = CFE_SB_MsgIdToValue(MsgId);

if (MsgPtr == NULL || msgidval > CFE_PLATFORM_SB_HIGHEST_VALID_MSGID)
if (MsgPtr == NULL || !CFE_SB_IsValidMsgId(MsgId))

Check warning

Code scanning / CodeQL-coding-standard

Side effect in a Boolean expression Warning

This Boolean expression is not side-effect free.
{
return CFE_MSG_BAD_ARGUMENT;
}
Expand Down
2 changes: 1 addition & 1 deletion modules/msg/fsw/src/cfe_msg_msgid_v2.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ CFE_Status_t CFE_MSG_SetMsgId(CFE_MSG_Message_t *MsgPtr, CFE_SB_MsgId_t MsgId)
{
CFE_SB_MsgId_Atom_t msgidval = CFE_SB_MsgIdToValue(MsgId);

if (MsgPtr == NULL || msgidval > CFE_PLATFORM_SB_HIGHEST_VALID_MSGID)
if (MsgPtr == NULL || !CFE_SB_IsValidMsgId(MsgId))
{
return CFE_MSG_BAD_ARGUMENT;
}
Expand Down

0 comments on commit f83135a

Please sign in to comment.