Skip to content

Commit c4e87dc

Browse files
committed
Fix #99, Fill in Name variable to avoid being used uninitialized
1 parent f958cc0 commit c4e87dc

File tree

4 files changed

+642
-652
lines changed

4 files changed

+642
-652
lines changed

fsw/src/cs_app_cmds.c

+122-123
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,18 @@
4646
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
4747
void CS_DisableAppCmd(const CS_NoArgsCmd_t *CmdPtr)
4848
{
49-
if (CS_CheckRecomputeOneshot() == false)
50-
{
51-
CS_AppData.HkPacket.Payload.AppCSState = CS_STATE_DISABLED;
52-
CS_ZeroAppTempValues();
49+
if (CS_CheckRecomputeOneshot() == false)
50+
{
51+
CS_AppData.HkPacket.Payload.AppCSState = CS_STATE_DISABLED;
52+
CS_ZeroAppTempValues();
5353

5454
#if (CS_PRESERVE_STATES_ON_PROCESSOR_RESET == true)
55-
CS_UpdateCDS();
55+
CS_UpdateCDS();
5656
#endif
5757

58-
CFE_EVS_SendEvent(CS_DISABLE_APP_INF_EID, CFE_EVS_EventType_INFORMATION, "Checksumming of App is Disabled");
59-
CS_AppData.HkPacket.Payload.CmdCounter++;
60-
}
58+
CFE_EVS_SendEvent(CS_DISABLE_APP_INF_EID, CFE_EVS_EventType_INFORMATION, "Checksumming of App is Disabled");
59+
CS_AppData.HkPacket.Payload.CmdCounter++;
60+
}
6161
}
6262

6363
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -67,17 +67,17 @@ void CS_DisableAppCmd(const CS_NoArgsCmd_t *CmdPtr)
6767
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
6868
void CS_EnableAppCmd(const CS_NoArgsCmd_t *CmdPtr)
6969
{
70-
if (CS_CheckRecomputeOneshot() == false)
71-
{
72-
CS_AppData.HkPacket.Payload.AppCSState = CS_STATE_ENABLED;
70+
if (CS_CheckRecomputeOneshot() == false)
71+
{
72+
CS_AppData.HkPacket.Payload.AppCSState = CS_STATE_ENABLED;
7373

7474
#if (CS_PRESERVE_STATES_ON_PROCESSOR_RESET == true)
75-
CS_UpdateCDS();
75+
CS_UpdateCDS();
7676
#endif
7777

78-
CFE_EVS_SendEvent(CS_ENABLE_APP_INF_EID, CFE_EVS_EventType_INFORMATION, "Checksumming of App is Enabled");
79-
CS_AppData.HkPacket.Payload.CmdCounter++;
80-
}
78+
CFE_EVS_SendEvent(CS_ENABLE_APP_INF_EID, CFE_EVS_EventType_INFORMATION, "Checksumming of App is Enabled");
79+
CS_AppData.HkPacket.Payload.CmdCounter++;
80+
}
8181
}
8282

8383
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -89,33 +89,31 @@ void CS_ReportBaselineAppCmd(const CS_AppNameCmd_t *CmdPtr)
8989
{
9090
/* command verification variables */
9191
CS_Res_App_Table_Entry_t *ResultsEntry;
92-
uint32 Baseline;
9392
char Name[OS_MAX_API_NAME];
9493

95-
strncpy(Name, CmdPtr->Payload.Name, sizeof(Name) - 1);
96-
Name[sizeof(Name) - 1] = '\0';
94+
strncpy(Name, CmdPtr->Payload.Name, sizeof(Name) - 1);
95+
Name[sizeof(Name) - 1] = '\0';
9796

98-
if (CS_GetAppResTblEntryByName(&ResultsEntry, Name))
97+
if (CS_GetAppResTblEntryByName(&ResultsEntry, Name))
98+
{
99+
if (ResultsEntry->ComputedYet == true)
99100
{
100-
if (ResultsEntry->ComputedYet == true)
101-
{
102-
Baseline = ResultsEntry->ComparisonValue;
103-
CFE_EVS_SendEvent(CS_BASELINE_APP_INF_EID, CFE_EVS_EventType_INFORMATION,
104-
"Report baseline of app %s is 0x%08X", Name, (unsigned int)Baseline);
105-
}
106-
else
107-
{
108-
CFE_EVS_SendEvent(CS_NO_BASELINE_APP_INF_EID, CFE_EVS_EventType_INFORMATION,
109-
"Report baseline of app %s has not been computed yet", Name);
110-
}
111-
CS_AppData.HkPacket.Payload.CmdCounter++;
101+
CFE_EVS_SendEvent(CS_BASELINE_APP_INF_EID, CFE_EVS_EventType_INFORMATION,
102+
"Report baseline of app %s is 0x%08X", Name, (unsigned int)ResultsEntry->ComparisonValue);
112103
}
113104
else
114105
{
115-
CFE_EVS_SendEvent(CS_BASELINE_INVALID_NAME_APP_ERR_EID, CFE_EVS_EventType_ERROR,
116-
"App report baseline failed, app %s not found", Name);
117-
CS_AppData.HkPacket.Payload.CmdErrCounter++;
106+
CFE_EVS_SendEvent(CS_NO_BASELINE_APP_INF_EID, CFE_EVS_EventType_INFORMATION,
107+
"Report baseline of app %s has not been computed yet", Name);
118108
}
109+
CS_AppData.HkPacket.Payload.CmdCounter++;
110+
}
111+
else
112+
{
113+
CFE_EVS_SendEvent(CS_BASELINE_INVALID_NAME_APP_ERR_EID, CFE_EVS_EventType_ERROR,
114+
"App report baseline failed, app %s not found", Name);
115+
CS_AppData.HkPacket.Payload.CmdErrCounter++;
116+
}
119117
}
120118

121119
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -131,53 +129,54 @@ void CS_RecomputeBaselineAppCmd(const CS_AppNameCmd_t *CmdPtr)
131129
CS_Res_App_Table_Entry_t *ResultsEntry;
132130
char Name[OS_MAX_API_NAME];
133131

134-
if (CS_AppData.HkPacket.Payload.RecomputeInProgress == false && CS_AppData.HkPacket.Payload.OneShotInProgress == false)
135-
{
136-
strncpy(Name, CmdPtr->Payload.Name, sizeof(Name) - 1);
137-
Name[sizeof(Name) - 1] = '\0';
132+
strncpy(Name, CmdPtr->Payload.Name, sizeof(Name) - 1);
133+
Name[sizeof(Name) - 1] = '\0';
138134

139-
/* make sure the entry is a valid number and is defined in the table */
140-
if (CS_GetAppResTblEntryByName(&ResultsEntry, Name))
141-
{
142-
/* There is no child task running right now, we can use it*/
143-
CS_AppData.HkPacket.Payload.RecomputeInProgress = true;
135+
if (CS_AppData.HkPacket.Payload.RecomputeInProgress == false &&
136+
CS_AppData.HkPacket.Payload.OneShotInProgress == false)
137+
{
138+
/* make sure the entry is a valid number and is defined in the table */
139+
if (CS_GetAppResTblEntryByName(&ResultsEntry, Name))
140+
{
141+
/* There is no child task running right now, we can use it*/
142+
CS_AppData.HkPacket.Payload.RecomputeInProgress = true;
144143

145-
/* fill in child task variables */
146-
CS_AppData.ChildTaskTable = CS_APP_TABLE;
144+
/* fill in child task variables */
145+
CS_AppData.ChildTaskTable = CS_APP_TABLE;
147146

148-
CS_AppData.RecomputeAppEntryPtr = ResultsEntry;
147+
CS_AppData.RecomputeAppEntryPtr = ResultsEntry;
149148

150-
Status = CFE_ES_CreateChildTask(&ChildTaskID, CS_RECOMP_APP_TASK_NAME, CS_RecomputeAppChildTask, NULL,
151-
CFE_PLATFORM_ES_DEFAULT_STACK_SIZE, CS_CHILD_TASK_PRIORITY, 0);
152-
if (Status == CFE_SUCCESS)
153-
{
154-
CFE_EVS_SendEvent(CS_RECOMPUTE_APP_STARTED_DBG_EID, CFE_EVS_EventType_DEBUG,
155-
"Recompute baseline of app %s started", Name);
156-
CS_AppData.HkPacket.Payload.CmdCounter++;
157-
}
158-
else /* child task creation failed */
159-
{
160-
CFE_EVS_SendEvent(CS_RECOMPUTE_APP_CREATE_CHDTASK_ERR_EID, CFE_EVS_EventType_ERROR,
161-
"Recompute baseline of app %s failed, CFE_ES_CreateChildTask returned: 0x%08X",
162-
Name, (unsigned int)Status);
163-
CS_AppData.HkPacket.Payload.CmdErrCounter++;
164-
CS_AppData.HkPacket.Payload.RecomputeInProgress = false;
165-
}
149+
Status = CFE_ES_CreateChildTask(&ChildTaskID, CS_RECOMP_APP_TASK_NAME, CS_RecomputeAppChildTask, NULL,
150+
CFE_PLATFORM_ES_DEFAULT_STACK_SIZE, CS_CHILD_TASK_PRIORITY, 0);
151+
if (Status == CFE_SUCCESS)
152+
{
153+
CFE_EVS_SendEvent(CS_RECOMPUTE_APP_STARTED_DBG_EID, CFE_EVS_EventType_DEBUG,
154+
"Recompute baseline of app %s started", Name);
155+
CS_AppData.HkPacket.Payload.CmdCounter++;
166156
}
167-
else
157+
else /* child task creation failed */
168158
{
169-
CFE_EVS_SendEvent(CS_RECOMPUTE_UNKNOWN_NAME_APP_ERR_EID, CFE_EVS_EventType_ERROR,
170-
"App recompute baseline failed, app %s not found", Name);
159+
CFE_EVS_SendEvent(CS_RECOMPUTE_APP_CREATE_CHDTASK_ERR_EID, CFE_EVS_EventType_ERROR,
160+
"Recompute baseline of app %s failed, CFE_ES_CreateChildTask returned: 0x%08X", Name,
161+
(unsigned int)Status);
171162
CS_AppData.HkPacket.Payload.CmdErrCounter++;
163+
CS_AppData.HkPacket.Payload.RecomputeInProgress = false;
172164
}
173165
}
174166
else
175167
{
176-
/*send event that we can't start another task right now */
177-
CFE_EVS_SendEvent(CS_RECOMPUTE_APP_CHDTASK_ERR_EID, CFE_EVS_EventType_ERROR,
178-
"App recompute baseline for app %s failed: child task in use", Name);
168+
CFE_EVS_SendEvent(CS_RECOMPUTE_UNKNOWN_NAME_APP_ERR_EID, CFE_EVS_EventType_ERROR,
169+
"App recompute baseline failed, app %s not found", Name);
179170
CS_AppData.HkPacket.Payload.CmdErrCounter++;
180171
}
172+
}
173+
else
174+
{
175+
/*send event that we can't start another task right now */
176+
CFE_EVS_SendEvent(CS_RECOMPUTE_APP_CHDTASK_ERR_EID, CFE_EVS_EventType_ERROR,
177+
"App recompute baseline for app %s failed: child task in use", Name);
178+
CS_AppData.HkPacket.Payload.CmdErrCounter++;
179+
}
181180
}
182181

183182
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -192,42 +191,42 @@ void CS_DisableNameAppCmd(const CS_AppNameCmd_t *CmdPtr)
192191
CS_Def_App_Table_Entry_t *DefinitionEntry;
193192
char Name[OS_MAX_API_NAME];
194193

195-
if (CS_CheckRecomputeOneshot() == false)
196-
{
197-
strncpy(Name, CmdPtr->Payload.Name, sizeof(Name) - 1);
198-
Name[sizeof(Name) - 1] = '\0';
199-
200-
if (CS_GetAppResTblEntryByName(&ResultsEntry, Name))
201-
{
202-
ResultsEntry->State = CS_STATE_DISABLED;
203-
ResultsEntry->TempChecksumValue = 0;
204-
ResultsEntry->ByteOffset = 0;
194+
if (CS_CheckRecomputeOneshot() == false)
195+
{
196+
strncpy(Name, CmdPtr->Payload.Name, sizeof(Name) - 1);
197+
Name[sizeof(Name) - 1] = '\0';
205198

206-
CFE_EVS_SendEvent(CS_DISABLE_APP_NAME_INF_EID, CFE_EVS_EventType_INFORMATION,
207-
"Checksumming of app %s is Disabled", Name);
199+
if (CS_GetAppResTblEntryByName(&ResultsEntry, Name))
200+
{
201+
ResultsEntry->State = CS_STATE_DISABLED;
202+
ResultsEntry->TempChecksumValue = 0;
203+
ResultsEntry->ByteOffset = 0;
208204

209-
if (CS_GetAppDefTblEntryByName(&DefinitionEntry, Name))
210-
{
211-
DefinitionEntry->State = CS_STATE_DISABLED;
212-
CS_ResetTablesTblResultEntry(CS_AppData.AppResTablesTblPtr);
213-
CFE_TBL_Modified(CS_AppData.DefAppTableHandle);
214-
}
215-
else
216-
{
217-
CFE_EVS_SendEvent(CS_DISABLE_APP_DEF_NOT_FOUND_DBG_EID, CFE_EVS_EventType_DEBUG,
218-
"CS unable to update apps definition table for entry %s", Name);
219-
}
205+
CFE_EVS_SendEvent(CS_DISABLE_APP_NAME_INF_EID, CFE_EVS_EventType_INFORMATION,
206+
"Checksumming of app %s is Disabled", Name);
220207

221-
CS_AppData.HkPacket.Payload.CmdCounter++;
208+
if (CS_GetAppDefTblEntryByName(&DefinitionEntry, Name))
209+
{
210+
DefinitionEntry->State = CS_STATE_DISABLED;
211+
CS_ResetTablesTblResultEntry(CS_AppData.AppResTablesTblPtr);
212+
CFE_TBL_Modified(CS_AppData.DefAppTableHandle);
222213
}
223-
224214
else
225215
{
226-
CFE_EVS_SendEvent(CS_DISABLE_APP_UNKNOWN_NAME_ERR_EID, CFE_EVS_EventType_ERROR,
227-
"App disable app command failed, app %s not found", Name);
228-
CS_AppData.HkPacket.Payload.CmdErrCounter++;
216+
CFE_EVS_SendEvent(CS_DISABLE_APP_DEF_NOT_FOUND_DBG_EID, CFE_EVS_EventType_DEBUG,
217+
"CS unable to update apps definition table for entry %s", Name);
229218
}
230-
} /* end InProgress if */
219+
220+
CS_AppData.HkPacket.Payload.CmdCounter++;
221+
}
222+
223+
else
224+
{
225+
CFE_EVS_SendEvent(CS_DISABLE_APP_UNKNOWN_NAME_ERR_EID, CFE_EVS_EventType_ERROR,
226+
"App disable app command failed, app %s not found", Name);
227+
CS_AppData.HkPacket.Payload.CmdErrCounter++;
228+
}
229+
}
231230
}
232231

233232
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -242,37 +241,37 @@ void CS_EnableNameAppCmd(const CS_AppNameCmd_t *CmdPtr)
242241
CS_Def_App_Table_Entry_t *DefinitionEntry;
243242
char Name[OS_MAX_API_NAME];
244243

245-
if (CS_CheckRecomputeOneshot() == false)
246-
{
247-
strncpy(Name, CmdPtr->Payload.Name, sizeof(Name) - 1);
248-
Name[sizeof(Name) - 1] = '\0';
249-
250-
if (CS_GetAppResTblEntryByName(&ResultsEntry, Name))
251-
{
252-
ResultsEntry->State = CS_STATE_ENABLED;
244+
if (CS_CheckRecomputeOneshot() == false)
245+
{
246+
strncpy(Name, CmdPtr->Payload.Name, sizeof(Name) - 1);
247+
Name[sizeof(Name) - 1] = '\0';
253248

254-
CFE_EVS_SendEvent(CS_ENABLE_APP_NAME_INF_EID, CFE_EVS_EventType_INFORMATION,
255-
"Checksumming of app %s is Enabled", Name);
249+
if (CS_GetAppResTblEntryByName(&ResultsEntry, Name))
250+
{
251+
ResultsEntry->State = CS_STATE_ENABLED;
256252

257-
if (CS_GetAppDefTblEntryByName(&DefinitionEntry, Name))
258-
{
259-
DefinitionEntry->State = CS_STATE_ENABLED;
260-
CS_ResetTablesTblResultEntry(CS_AppData.AppResTablesTblPtr);
261-
CFE_TBL_Modified(CS_AppData.DefAppTableHandle);
262-
}
263-
else
264-
{
265-
CFE_EVS_SendEvent(CS_ENABLE_APP_DEF_NOT_FOUND_DBG_EID, CFE_EVS_EventType_DEBUG,
266-
"CS unable to update apps definition table for entry %s", Name);
267-
}
253+
CFE_EVS_SendEvent(CS_ENABLE_APP_NAME_INF_EID, CFE_EVS_EventType_INFORMATION,
254+
"Checksumming of app %s is Enabled", Name);
268255

269-
CS_AppData.HkPacket.Payload.CmdCounter++;
256+
if (CS_GetAppDefTblEntryByName(&DefinitionEntry, Name))
257+
{
258+
DefinitionEntry->State = CS_STATE_ENABLED;
259+
CS_ResetTablesTblResultEntry(CS_AppData.AppResTablesTblPtr);
260+
CFE_TBL_Modified(CS_AppData.DefAppTableHandle);
270261
}
271262
else
272263
{
273-
CFE_EVS_SendEvent(CS_ENABLE_APP_UNKNOWN_NAME_ERR_EID, CFE_EVS_EventType_ERROR,
274-
"App enable app command failed, app %s not found", Name);
275-
CS_AppData.HkPacket.Payload.CmdErrCounter++;
264+
CFE_EVS_SendEvent(CS_ENABLE_APP_DEF_NOT_FOUND_DBG_EID, CFE_EVS_EventType_DEBUG,
265+
"CS unable to update apps definition table for entry %s", Name);
276266
}
277-
} /* end InProgress if */
267+
268+
CS_AppData.HkPacket.Payload.CmdCounter++;
269+
}
270+
else
271+
{
272+
CFE_EVS_SendEvent(CS_ENABLE_APP_UNKNOWN_NAME_ERR_EID, CFE_EVS_EventType_ERROR,
273+
"App enable app command failed, app %s not found", Name);
274+
CS_AppData.HkPacket.Payload.CmdErrCounter++;
275+
}
276+
}
278277
}

0 commit comments

Comments
 (0)