From 2601c50c96caf7792a625e7f45bc42d4421276c4 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 8 Sep 2021 20:15:39 +0200 Subject: [PATCH] wip --- .../src/programFpgaBlackfin.c | 28 +++++++++++-------- .../src/slsDetectorServer_funcs.c | 9 +++--- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/slsDetectorServers/slsDetectorServer/src/programFpgaBlackfin.c b/slsDetectorServers/slsDetectorServer/src/programFpgaBlackfin.c index 44abd33a4..9e3ebeb54 100644 --- a/slsDetectorServers/slsDetectorServer/src/programFpgaBlackfin.c +++ b/slsDetectorServers/slsDetectorServer/src/programFpgaBlackfin.c @@ -72,9 +72,10 @@ int preparetoCopyFPGAProgram(FILE **fd, uint64_t fsize, char *mess) { char retvals[MAX_STR_LENGTH] = {0}; sprintf(cmd, "rm -fr %s", TEMP_PROG_FILE_NAME); if (FAIL == executeCommand(cmd, retvals, logDEBUG1)) { - sprintf(mess, - "Could not program fpga. (could not delete old file: %s)", - retvals); + strcpy(mess, + "Could not program fpga. (could not delete old file: "); + strncat(mess, retvals, sizeof(mess) - strlen(mess) - 1); + strcat(mess, "\n"); LOG(logERROR, (mess)); return FAIL; } @@ -155,16 +156,18 @@ int getDrive(char *mess) { char retvals[MAX_STR_LENGTH] = {0}; sprintf(cmd, "rm -fr %s", TEMP_PROG_FILE_NAME); if (FAIL == executeCommand(cmd, retvals, logDEBUG1)) { - sprintf(mess, "Could not program fpga. (could not delete old file: %s)", - retvals); + strcpy(mess, "Could not program fpga. (could not delete old file: "); + strncat(mess, retvals, sizeof(mess) - strlen(mess) - 1); + strcat(mess, "\n"); LOG(logERROR, (mess)); return FAIL; } memset(retvals, 0, MAX_STR_LENGTH); if (executeCommand(CMD_GET_FLASH, retvals, logDEBUG1) == FAIL) { - sprintf(mess, "Could not program fpga. (could not get flash drive: %s)", - retvals); + strcpy(mess, "Could not program fpga. (could not get flash drive: "); + strncat(mess, retvals, sizeof(mess) - strlen(mess) - 1); + strcat(mess, "\n"); LOG(logERROR, (mess)); return FAIL; } @@ -220,8 +223,9 @@ int eraseFlash(char *mess) { char retvals[MAX_STR_LENGTH] = {0}; sprintf(cmd, "flash_eraseall %s", flashDriveName); if (FAIL == executeCommand(cmd, retvals, logDEBUG1)) { - sprintf(mess, "Could not program fpga. (could not erase flash: %s)", - retvals); + strcpy(mess, "Could not program fpga. (could not erase flash: "); + strncat(mess, retvals, sizeof(mess) - strlen(mess) - 1); + strcat(mess, "\n"); LOG(logERROR, (mess)); return FAIL; } @@ -293,8 +297,10 @@ int waitForFPGAtoTouchFlash(char* mess) { // read gpio status char retvals[MAX_STR_LENGTH] = {0}; if (FAIL == executeCommand(CMD_FPGA_PICKED_STATUS, retvals, logDEBUG1)) { - sprintf(mess, "Could not program fpga. (could not read gpio status: %s)\n", - retvals); + strcpy(mess, + "Could not program fpga. (could not read gpio status: "); + strncat(mess, retvals, sizeof(mess) - strlen(mess) - 1); + strcat(mess, "\n"); LOG(logERROR, (mess)); return FAIL; } diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index bf6d335c4..2aafe2e06 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -461,6 +461,7 @@ int executeCommand(char *command, char *result, enum TLogLevel level) { strncat(result, temp, tempsize); memset(temp, 0, tempsize); } + result[MAX_STR_LENGTH - 1] = '\0'; int sucess = pclose(sysFile); if (strlen(result)) { if (sucess) { @@ -3803,10 +3804,10 @@ int program_fpga(int file_des) { char retvals[MAX_STR_LENGTH] = {0}; strcpy(cmd, "ls -lrt /var/tmp/"); if (FAIL == executeCommand(cmd, retvals, logINFO)) { - sprintf( - mess, - "Could not program fpga. (could not delete old file: %s)", - retvals); + strcpy(mess, + "Could not program fpga. Could not delete old file: "); + strncat(mess, retvals, sizeof(mess) - strlen(mess) - 1); + strcat(mess, "\n"); LOG(logERROR, (mess)); return FAIL; } else {