Skip to content

Commit a656a80

Browse files
committed
Update nasa#899, Use sizeof() for output strings
Also check/ensure null termination of output
1 parent 389e5e0 commit a656a80

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

fsw/cfe-core/src/es/cfe_es_apps.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1525,9 +1525,9 @@ int32 CFE_ES_GetTaskInfoInternal(CFE_ES_TaskRecord_t *TaskRecPtr, CFE_ES_TaskInf
15251525
** Get the Application ID and Task Name
15261526
*/
15271527
TaskInfoPtr->AppId = TaskRecPtr->AppId;
1528-
strncpy((char *)TaskInfoPtr->TaskName,
1529-
(char *)TaskRecPtr->TaskName,OS_MAX_API_NAME);
1530-
TaskInfoPtr->TaskName[OS_MAX_API_NAME - 1] = '\0';
1528+
strncpy((char*)TaskInfoPtr->TaskName, TaskRecPtr->TaskName,
1529+
sizeof(TaskInfoPtr->TaskName)-1);
1530+
TaskInfoPtr->TaskName[sizeof(TaskInfoPtr->TaskName)-1] = '\0';
15311531

15321532
/*
15331533
** Store away the Task ID ( for the QueryAllTasks Cmd )
@@ -1545,9 +1545,9 @@ int32 CFE_ES_GetTaskInfoInternal(CFE_ES_TaskRecord_t *TaskRecPtr, CFE_ES_TaskInf
15451545
AppRecPtr = CFE_ES_LocateAppRecordByID(TaskRecPtr->AppId);
15461546
if (CFE_ES_AppRecordIsMatch(AppRecPtr, TaskRecPtr->AppId))
15471547
{
1548-
strncpy((char*)TaskInfoPtr->AppName,
1549-
(char*)AppRecPtr->StartParams.Name,
1548+
strncpy((char*)TaskInfoPtr->AppName, AppRecPtr->StartParams.Name,
15501549
sizeof(TaskInfoPtr->AppName)-1);
1550+
TaskInfoPtr->AppName[sizeof(TaskInfoPtr->AppName)-1] = '\0';
15511551
ReturnCode = CFE_SUCCESS;
15521552
}
15531553
else

fsw/cfe-core/src/sb/cfe_sb_priv.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,7 @@ char *CFE_SB_GetAppTskName(uint32 TaskId,char *FullName){
634634
strncpy(FullName,"Unknown",OS_MAX_API_NAME-1);
635635
FullName[OS_MAX_API_NAME-1] = '\0';
636636

637-
}else if(strncmp((char *)ptr->AppName,(char *)ptr->TaskName,OS_MAX_API_NAME-1) == 0){
637+
}else if(strncmp((char *)ptr->AppName,(char *)ptr->TaskName,sizeof(ptr->AppName)) == 0){
638638

639639
/* if app name and task name are the same */
640640
strncpy(FullName,(char *)ptr->AppName,OS_MAX_API_NAME-1);

fsw/cfe-core/src/tbl/cfe_tbl_api.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1401,7 +1401,9 @@ int32 CFE_TBL_GetInfo( CFE_TBL_Info_t *TblInfoPtr, const char *TblName )
14011401
TblInfoPtr->FileCreateTimeSecs = RegRecPtr->Buffers[RegRecPtr->ActiveBufferIndex].FileCreateTimeSecs;
14021402
TblInfoPtr->FileCreateTimeSubSecs = RegRecPtr->Buffers[RegRecPtr->ActiveBufferIndex].FileCreateTimeSubSecs;
14031403
TblInfoPtr->Crc = RegRecPtr->Buffers[RegRecPtr->ActiveBufferIndex].Crc;
1404-
strncpy(TblInfoPtr->LastFileLoaded, RegRecPtr->LastFileLoaded, OS_MAX_PATH_LEN);
1404+
strncpy(TblInfoPtr->LastFileLoaded, RegRecPtr->LastFileLoaded,
1405+
sizeof(TblInfoPtr->LastFileLoaded)-1);
1406+
TblInfoPtr->LastFileLoadedX[sizeof(TblInfoPtr->LastFileLoaded)-1] = 0;
14051407

14061408
/* Count the number of Access Descriptors to determine the number of users */
14071409
HandleIterator = RegRecPtr->HeadOfAccessList;

0 commit comments

Comments
 (0)