From 63ce57ab29bcd9610f6450c5f5763904307101ab Mon Sep 17 00:00:00 2001 From: jdfiguer Date: Mon, 10 Jun 2024 08:30:07 -0400 Subject: [PATCH] Fix #127, Adds JSC 2.1 Static Analysis comments --- fsw/src/ds_app.c | 1 + fsw/src/ds_cmds.c | 1 + fsw/src/ds_file.c | 2 ++ fsw/src/ds_table.c | 2 ++ 4 files changed, 6 insertions(+) diff --git a/fsw/src/ds_app.c b/fsw/src/ds_app.c index 9bd982b..d0b2349 100644 --- a/fsw/src/ds_app.c +++ b/fsw/src/ds_app.c @@ -358,6 +358,7 @@ void DS_AppSendHkCmd(void) Status = CFE_TBL_GetInfo(&FilterTblInfo, FilterTblName); if (Status == CFE_SUCCESS) { + /* SAD: Using OS_MAX_PATH_LEN - 1 ensures room for null termination. Explicit null terminator added at OS_MAX_PATH_LEN - 1 for safety. */ strncpy(PayloadPtr->FilterTblFilename, FilterTblInfo.LastFileLoaded, OS_MAX_PATH_LEN - 1); PayloadPtr->FilterTblFilename[OS_MAX_PATH_LEN - 1] = '\0'; } diff --git a/fsw/src/ds_cmds.c b/fsw/src/ds_cmds.c index 581f034..b72226b 100644 --- a/fsw/src/ds_cmds.c +++ b/fsw/src/ds_cmds.c @@ -1096,6 +1096,7 @@ void DS_GetFileInfoCmd(const CFE_SB_Buffer_t *BufPtr) /* ** Set current open filename... */ + /* SAD: Using strncpy since DS_AppData.FileStatus[i].FileName is null-terminated in ds/fsw/src/ds_file.c::DS_FileCreateName() */ strncpy(FileInfoPtr->FileName, DS_AppData.FileStatus[i].FileName, sizeof(FileInfoPtr->FileName)); } } diff --git a/fsw/src/ds_file.c b/fsw/src/ds_file.c index fb9f31c..843c8eb 100644 --- a/fsw/src/ds_file.c +++ b/fsw/src/ds_file.c @@ -881,6 +881,7 @@ void DS_FileCloseDest(int32 FileIndex) } /* Update the path name for reporting */ + /* SAD: Using strncpy since PathName is null-terminated in ds/fsw/src/ds_file.c::DS_FileCloseDest() */ strncpy(FileStatus->FileName, PathName, sizeof(FileStatus->FileName)); } } @@ -991,6 +992,7 @@ void DS_FileTransmit(DS_AppFileStatus_t *FileStatus) /* ** Set current open filename... */ + /* SAD: Using strncpy since FileStatus->FileName is null-terminated in ds/fsw/src/ds_file.c::DS_FileCreateName() */ strncpy(FileInfo->FileName, FileStatus->FileName, sizeof(FileInfo->FileName)); /* diff --git a/fsw/src/ds_table.c b/fsw/src/ds_table.c index 9643e9b..fc99fe2 100644 --- a/fsw/src/ds_table.c +++ b/fsw/src/ds_table.c @@ -421,6 +421,7 @@ CFE_Status_t DS_TableVerifyDestFile(const void *TableData) else { CountBad++; + /* SAD: Assignment of 0xFFFFFFFF to Result is safe; it represents -1 in int32, within valid range */ Result = DS_TABLE_VERIFY_ERR; } } @@ -543,6 +544,7 @@ CFE_Status_t DS_TableVerifyFilter(const void *TableData) else { CountBad++; + /* SAD: Assignment of 0xFFFFFFFF to Result is safe; it represents -1 in int32, within valid range */ Result = DS_TABLE_VERIFY_ERR; } }