Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 8 additions & 12 deletions fsw/src/cs_app_cmds.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,9 @@ CFE_Status_t CS_ReportBaselineAppCmd(const CS_ReportBaselineAppCmd_t *CmdPtr)
/* command verification variables */
CS_Res_App_Table_Entry_t *ResultsEntry;
uint32 Baseline;
char Name[OS_MAX_API_NAME];
char Name[sizeof(CmdPtr->Payload.Name)];

strncpy(Name, CmdPtr->Payload.Name, sizeof(Name) - 1);
Name[sizeof(Name) - 1] = '\0';
CFE_SB_MessageStringGet(Name, CmdPtr->Payload.Name, "", sizeof(Name), sizeof(CmdPtr->Payload.Name));

if (CS_GetAppResTblEntryByName(&ResultsEntry, Name))
{
Expand Down Expand Up @@ -141,13 +140,12 @@ CFE_Status_t CS_RecomputeBaselineAppCmd(const CS_RecomputeBaselineAppCmd_t *CmdP
CFE_ES_TaskId_t ChildTaskID;
CFE_Status_t Status;
CS_Res_App_Table_Entry_t *ResultsEntry;
char Name[OS_MAX_API_NAME];
char Name[sizeof(CmdPtr->Payload.Name)];

if (CS_AppData.HkPacket.Payload.RecomputeInProgress == false
&& CS_AppData.HkPacket.Payload.OneShotInProgress == false)
{
strncpy(Name, CmdPtr->Payload.Name, sizeof(Name) - 1);
Name[sizeof(Name) - 1] = '\0';
CFE_SB_MessageStringGet(Name, CmdPtr->Payload.Name, "", sizeof(Name), sizeof(CmdPtr->Payload.Name));

/* make sure the entry is a valid number and is defined in the table */
if (CS_GetAppResTblEntryByName(&ResultsEntry, Name))
Expand Down Expand Up @@ -219,12 +217,11 @@ CFE_Status_t CS_DisableNameAppCmd(const CS_DisableNameAppCmd_t *CmdPtr)
CS_Res_App_Table_Entry_t *ResultsEntry;
CS_Def_App_Table_Entry_t *DefinitionEntry;
CS_TableWrapper_t *tw = &CS_AppData.Tbl[CS_ChecksumType_APP_TABLE];
char Name[OS_MAX_API_NAME];
char Name[sizeof(CmdPtr->Payload.Name)];

if (CS_CheckRecomputeOneshot() == false)
{
strncpy(Name, CmdPtr->Payload.Name, sizeof(Name) - 1);
Name[sizeof(Name) - 1] = '\0';
CFE_SB_MessageStringGet(Name, CmdPtr->Payload.Name, "", sizeof(Name), sizeof(CmdPtr->Payload.Name));

if (CS_GetAppResTblEntryByName(&ResultsEntry, Name))
{
Expand Down Expand Up @@ -276,12 +273,11 @@ CFE_Status_t CS_EnableNameAppCmd(const CS_EnableNameAppCmd_t *CmdPtr)
CS_Res_App_Table_Entry_t *ResultsEntry;
CS_Def_App_Table_Entry_t *DefinitionEntry;
CS_TableWrapper_t *tw = &CS_AppData.Tbl[CS_ChecksumType_APP_TABLE];
char Name[OS_MAX_API_NAME];
char Name[sizeof(CmdPtr->Payload.Name)];

if (CS_CheckRecomputeOneshot() == false)
{
strncpy(Name, CmdPtr->Payload.Name, sizeof(Name) - 1);
Name[sizeof(Name) - 1] = '\0';
CFE_SB_MessageStringGet(Name, CmdPtr->Payload.Name, "", sizeof(Name), sizeof(CmdPtr->Payload.Name));

if (CS_GetAppResTblEntryByName(&ResultsEntry, Name))
{
Expand Down
6 changes: 3 additions & 3 deletions fsw/src/cs_table_processing.c
Original file line number Diff line number Diff line change
Expand Up @@ -617,13 +617,13 @@ void CS_ProcessNewTablesDefinitionTable(CS_TableWrapper_t *tw)
CFE_ES_AppId_t AppID = CFE_ES_APPID_UNDEFINED;
CFE_TBL_Handle_t TableHandle;
bool Owned;
char AppName[OS_MAX_API_NAME];
char TableAppName[OS_MAX_API_NAME];
char AppName[CFE_MISSION_MAX_API_LEN];
char TableAppName[CFE_MISSION_MAX_API_LEN];
char TableTableName[CFE_MISSION_TBL_MAX_NAME_LENGTH];
uint16 TableId;

CFE_ES_GetAppID(&AppID);
CFE_ES_GetAppName(AppName, AppID, OS_MAX_API_NAME);
CFE_ES_GetAppName(AppName, AppID, sizeof(AppName));

/* We don't want to be doing chekcksums while changing the table out */
PreviousState = CS_AppData.HkPacket.Payload.TablesCSState;
Expand Down
6 changes: 4 additions & 2 deletions fsw/src/cs_utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,8 @@ bool CS_GetAppResTblEntryByName(CS_Res_App_Table_Entry_t **EntryPtr, const char
break;
}

if (ResultsEntry->State != CS_ChecksumState_EMPTY && strncmp(ResultsEntry->Name, Name, OS_MAX_API_NAME) == 0)
if (ResultsEntry->State != CS_ChecksumState_EMPTY
&& strncmp(ResultsEntry->Name, Name, sizeof(ResultsEntry->Name)) == 0)
{
Status = true;
*EntryPtr = ResultsEntry;
Expand Down Expand Up @@ -527,7 +528,8 @@ bool CS_GetAppDefTblEntryByName(CS_Def_App_Table_Entry_t **EntryPtr, const char
break;
}

if (CS_StateValid(DefinitionEntry->State) && strncmp(DefinitionEntry->Name, Name, OS_MAX_API_NAME) == 0)
if (CS_StateValid(DefinitionEntry->State)
&& strncmp(DefinitionEntry->Name, Name, sizeof(DefinitionEntry->Name)) == 0)
{
Status = true;
*EntryPtr = DefinitionEntry;
Expand Down
68 changes: 34 additions & 34 deletions unit-test/cs_app_cmds_tests.c
Original file line number Diff line number Diff line change
Expand Up @@ -195,8 +195,8 @@ void CS_ReportBaselineAppCmd_Test_Baseline(void)
memset(&CmdPacket, 0, sizeof(CmdPacket));
snprintf(ExpectedEventString, CFE_MISSION_EVS_MAX_MESSAGE_LENGTH, "Report baseline of app %%s is 0x%%08X");

strncpy(CmdPacket.Payload.Name, "App1", OS_MAX_API_NAME);
strncpy(ResAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(CmdPacket.Payload.Name, "App1", sizeof(CmdPacket.Payload.Name));
strncpy(ResAppTblPtr->Name, "App1", sizeof(ResAppTblPtr->Name));

/* Needed to make subfunction CS_GetAppResTblEntryByName behave properly */
ResAppTblPtr->State = 1;
Expand Down Expand Up @@ -240,8 +240,8 @@ void CS_ReportBaselineAppCmd_Test_NoBaseline(void)
CFE_MISSION_EVS_MAX_MESSAGE_LENGTH,
"Report baseline of app %%s has not been computed yet");

strncpy(CmdPacket.Payload.Name, "App1", OS_MAX_API_NAME);
strncpy(ResAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(CmdPacket.Payload.Name, "App1", sizeof(CmdPacket.Payload.Name));
strncpy(ResAppTblPtr->Name, "App1", sizeof(ResAppTblPtr->Name));

/* Needed to make subfunction CS_GetAppResTblEntryByName behave properly */
ResAppTblPtr->State = 1;
Expand Down Expand Up @@ -284,8 +284,8 @@ void CS_ReportBaselineAppCmd_Test_BaselineInvalidName(void)
memset(&CmdPacket, 0, sizeof(CmdPacket));
snprintf(ExpectedEventString, CFE_MISSION_EVS_MAX_MESSAGE_LENGTH, "App report baseline failed, app %%s not found");

strncpy(CmdPacket.Payload.Name, "App1", OS_MAX_API_NAME);
strncpy(ResAppTblPtr->Name, "App2", OS_MAX_API_NAME);
strncpy(CmdPacket.Payload.Name, "App1", sizeof(CmdPacket.Payload.Name));
strncpy(ResAppTblPtr->Name, "App2", sizeof(ResAppTblPtr->Name));

/* Needed to make subfunction CS_GetAppResTblEntryByName behave properly */
ResAppTblPtr->State = 1;
Expand Down Expand Up @@ -325,8 +325,8 @@ void CS_RecomputeBaselineAppCmd_Test_OneShot(void)
CFE_MISSION_EVS_MAX_MESSAGE_LENGTH,
"App recompute baseline for app %%s failed: child task in use");

strncpy(CmdPacket.Payload.Name, "App1", OS_MAX_API_NAME);
strncpy(ResAppTblPtr->Name, "App2", OS_MAX_API_NAME);
strncpy(CmdPacket.Payload.Name, "App1", sizeof(CmdPacket.Payload.Name));
strncpy(ResAppTblPtr->Name, "App2", sizeof(ResAppTblPtr->Name));

CS_AppData.HkPacket.Payload.RecomputeInProgress = false;
CS_AppData.HkPacket.Payload.OneShotInProgress = true;
Expand Down Expand Up @@ -366,8 +366,8 @@ void CS_RecomputeBaselineAppCmd_Test_Nominal(void)
memset(&CmdPacket, 0, sizeof(CmdPacket));
snprintf(ExpectedEventString, CFE_MISSION_EVS_MAX_MESSAGE_LENGTH, "Recompute baseline of app %%s started");

strncpy(CmdPacket.Payload.Name, "App1", OS_MAX_API_NAME);
strncpy(ResAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(CmdPacket.Payload.Name, "App1", sizeof(CmdPacket.Payload.Name));
strncpy(ResAppTblPtr->Name, "App1", sizeof(ResAppTblPtr->Name));

CS_AppData.HkPacket.Payload.RecomputeInProgress = false;

Expand Down Expand Up @@ -418,8 +418,8 @@ void CS_RecomputeBaselineAppCmd_Test_CreateChildTaskError(void)
CFE_MISSION_EVS_MAX_MESSAGE_LENGTH,
"Recompute baseline of app %%s failed, CFE_ES_CreateChildTask returned: 0x%%08X");

strncpy(CmdPacket.Payload.Name, "App1", OS_MAX_API_NAME);
strncpy(ResAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(CmdPacket.Payload.Name, "App1", sizeof(CmdPacket.Payload.Name));
strncpy(ResAppTblPtr->Name, "App1", sizeof(ResAppTblPtr->Name));

CS_AppData.HkPacket.Payload.RecomputeInProgress = false;

Expand Down Expand Up @@ -469,8 +469,8 @@ void CS_RecomputeBaselineAppCmd_Test_UnknownNameError(void)
CFE_MISSION_EVS_MAX_MESSAGE_LENGTH,
"App recompute baseline failed, app %%s not found");

strncpy(CmdPacket.Payload.Name, "App1", OS_MAX_API_NAME);
strncpy(ResAppTblPtr->Name, "App2", OS_MAX_API_NAME);
strncpy(CmdPacket.Payload.Name, "App1", sizeof(CmdPacket.Payload.Name));
strncpy(ResAppTblPtr->Name, "App2", sizeof(ResAppTblPtr->Name));

CS_AppData.HkPacket.Payload.RecomputeInProgress = false;

Expand Down Expand Up @@ -512,8 +512,8 @@ void CS_RecomputeBaselineAppCmd_Test_RecomputeInProgress(void)
CFE_MISSION_EVS_MAX_MESSAGE_LENGTH,
"App recompute baseline for app %%s failed: child task in use");

strncpy(CmdPacket.Payload.Name, "App1", OS_MAX_API_NAME);
strncpy(ResAppTblPtr->Name, "App2", OS_MAX_API_NAME);
strncpy(CmdPacket.Payload.Name, "App1", sizeof(CmdPacket.Payload.Name));
strncpy(ResAppTblPtr->Name, "App2", sizeof(ResAppTblPtr->Name));

CS_AppData.HkPacket.Payload.RecomputeInProgress = true;

Expand Down Expand Up @@ -553,9 +553,9 @@ void CS_DisableNameAppCmd_Test_Nominal(void)
memset(&CmdPacket, 0, sizeof(CmdPacket));
snprintf(ExpectedEventString, CFE_MISSION_EVS_MAX_MESSAGE_LENGTH, "Checksumming of app %%s is Disabled");

strncpy(CmdPacket.Payload.Name, "App1", OS_MAX_API_NAME);
strncpy(ResAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(DefAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(CmdPacket.Payload.Name, "App1", sizeof(CmdPacket.Payload.Name));
strncpy(ResAppTblPtr->Name, "App1", sizeof(ResAppTblPtr->Name));
strncpy(DefAppTblPtr->Name, "App1", sizeof(DefAppTblPtr->Name));

/* Needed to make subfunction CS_GetAppDefTblEntryByName behave properly */
ResAppTblPtr->State = 1;
Expand Down Expand Up @@ -610,9 +610,9 @@ void CS_DisableNameAppCmd_Test_UpdateAppsDefinitionTableError(void)
CFE_MISSION_EVS_MAX_MESSAGE_LENGTH,
"CS unable to update apps definition table for entry %%s");

strncpy(CmdPacket.Payload.Name, "App1", OS_MAX_API_NAME);
strncpy(ResAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(DefAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(CmdPacket.Payload.Name, "App1", sizeof(CmdPacket.Payload.Name));
strncpy(ResAppTblPtr->Name, "App1", sizeof(ResAppTblPtr->Name));
strncpy(DefAppTblPtr->Name, "App1", sizeof(DefAppTblPtr->Name));

/* Needed to make subfunction CS_GetAppDefTblEntryByName behave properly */
ResAppTblPtr->State = 1;
Expand Down Expand Up @@ -669,9 +669,9 @@ void CS_DisableNameAppCmd_Test_UnknownNameError(void)
CFE_MISSION_EVS_MAX_MESSAGE_LENGTH,
"App disable app command failed, app %%s not found");

strncpy(CmdPacket.Payload.Name, "App1", OS_MAX_API_NAME);
strncpy(ResAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(DefAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(CmdPacket.Payload.Name, "App1", sizeof(CmdPacket.Payload.Name));
strncpy(ResAppTblPtr->Name, "App1", sizeof(ResAppTblPtr->Name));
strncpy(DefAppTblPtr->Name, "App1", sizeof(DefAppTblPtr->Name));

/* Set to make subfunction CS_GetAppResTblEntryByName return false */
ResAppTblPtr->State = CS_ChecksumState_EMPTY;
Expand Down Expand Up @@ -730,9 +730,9 @@ void CS_EnableNameAppCmd_Test_Nominal(void)
memset(&CmdPacket, 0, sizeof(CmdPacket));
snprintf(ExpectedEventString, CFE_MISSION_EVS_MAX_MESSAGE_LENGTH, "Checksumming of app %%s is Enabled");

strncpy(CmdPacket.Payload.Name, "App1", OS_MAX_API_NAME);
strncpy(ResAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(DefAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(CmdPacket.Payload.Name, "App1", sizeof(CmdPacket.Payload.Name));
strncpy(ResAppTblPtr->Name, "App1", sizeof(ResAppTblPtr->Name));
strncpy(DefAppTblPtr->Name, "App1", sizeof(DefAppTblPtr->Name));

/* Needed to make subfunction CS_GetAppDefTblEntryByName behave properly */
ResAppTblPtr->State = 1;
Expand Down Expand Up @@ -787,9 +787,9 @@ void CS_EnableNameAppCmd_Test_UpdateAppsDefinitionTableError(void)
CFE_MISSION_EVS_MAX_MESSAGE_LENGTH,
"CS unable to update apps definition table for entry %%s");

strncpy(CmdPacket.Payload.Name, "App1", OS_MAX_API_NAME);
strncpy(ResAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(DefAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(CmdPacket.Payload.Name, "App1", sizeof(CmdPacket.Payload.Name));
strncpy(ResAppTblPtr->Name, "App1", sizeof(ResAppTblPtr->Name));
strncpy(DefAppTblPtr->Name, "App1", sizeof(DefAppTblPtr->Name));

/* Needed to make subfunction CS_GetAppDefTblEntryByName behave properly */
ResAppTblPtr->State = 1;
Expand Down Expand Up @@ -846,9 +846,9 @@ void CS_EnableNameAppCmd_Test_UnknownNameError(void)
CFE_MISSION_EVS_MAX_MESSAGE_LENGTH,
"App enable app command failed, app %%s not found");

strncpy(CmdPacket.Payload.Name, "App1", OS_MAX_API_NAME);
strncpy(ResAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(DefAppTblPtr->Name, "App1", OS_MAX_API_NAME);
strncpy(CmdPacket.Payload.Name, "App1", sizeof(CmdPacket.Payload.Name));
strncpy(ResAppTblPtr->Name, "App1", sizeof(ResAppTblPtr->Name));
strncpy(DefAppTblPtr->Name, "App1", sizeof(DefAppTblPtr->Name));

/* Set to make subfunction CS_GetAppResTblEntryByName return false */
ResAppTblPtr->State = CS_ChecksumState_EMPTY;
Expand Down
Loading