From 7477875190a1cc84f06d828354d5145989d5aa87 Mon Sep 17 00:00:00 2001 From: Frank Voorburg Date: Thu, 28 Nov 2019 12:21:05 +0000 Subject: [PATCH] Refs #932. Improved S-record verification when loading firmware data from an S-record file. git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@726 5dc33758-31d5-4daf-9ae8-b24bf3d40d73 --- Host/Source/LibOpenBLT/srecparser.c | 111 ++++++++++++++++++++++++---- Host/libopenblt.dll | Bin 193536 -> 194048 bytes 2 files changed, 97 insertions(+), 14 deletions(-) diff --git a/Host/Source/LibOpenBLT/srecparser.c b/Host/Source/LibOpenBLT/srecparser.c index d7bd8783..d1e0fb49 100644 --- a/Host/Source/LibOpenBLT/srecparser.c +++ b/Host/Source/LibOpenBLT/srecparser.c @@ -62,6 +62,7 @@ typedef enum t_srec_parser_line_type * Function prototypes ****************************************************************************************/ static bool SRecParserLoadFromFile (char const * firmwareFile, uint32_t addressOffset); +static bool SRecParserVerifyFile(char const * firmwareFile); static bool SRecParserSaveToFile (char const * firmwareFile); static bool SRecParserExtractLineData(char const * line, uint32_t * address, uint32_t * len, uint8_t * data); @@ -128,6 +129,83 @@ static bool SRecParserLoadFromFile (char const * firmwareFile, uint32_t addressO /* Check parameters. */ assert(firmwareFile != NULL); + /* Only continue if the parameters are valid. */ + if (firmwareFile != NULL) /*lint !e774 */ + { + /* First verify that the file is actually a valid S-record with correct line + * checksums and that it actually contains program data. Only continue if this + * verification was successful. + */ + if (SRecParserVerifyFile(firmwareFile)) + { + /* Open the file for reading. */ + fp = fopen(firmwareFile, "r"); + /* Only continue if the filepointer is valid. */ + if (fp != NULL) + { + /* Start at the beginning of the file. */ + rewind(fp); + /* Assume that everyting goes okay and then only set a negative result value upon + * detection of a problem. + */ + result = true; + /* Read the entire file, one line at a time. */ + while (fgets(line, sizeof(line)/sizeof(line[0]), fp) != NULL ) + { + /* Replace the line termination with a string termination. */ + line[strcspn(line, "\n\r")] = '\0'; + /* Extra data from the S-record line. */ + if (SRecParserExtractLineData(line, &address, &len, data)) + { + /* Only add data if there is actually something to add. */ + if (len > 0) + { + /* Add the extracted data to the firmware data module and add the memory + * address that was specified by the caller. + */ + if (!FirmwareAddData(address + addressOffset, len, data)) + { + /* Error detected. Flag it and abort. */ + result = false; + break; + } + } + } + } + /* Close the file now that we are done with it. */ + fclose(fp); + } + } + } + /* Give the result back to the caller. */ + return result; +} /*** end of SRecParserLoadFromFile ***/ + + +/************************************************************************************//** +** \brief Parses the specified firmware file to verify that the file is a valid +** S-record file. +** \param firmwareFile Filename of the firmware file to verify. +** \return True if successful, false otherwise. +** +****************************************************************************************/ +static bool SRecParserVerifyFile(char const * firmwareFile) +{ + bool result = false; + FILE *fp; + /* The bytes count entry on the S-record line is max 255 bytes. This include the + * address and the checksum. This would result in 255 * 2 = 510 characters. Another + * 4 characters are needed for the bytes count and line type characters. Then another + * two for possible line termination (new line + cariage return). This brings the total + * characters to 516. Note that this array was made static to lower the stack load. + */ + static char line[516]; + tSRecParserLineType lineType; + bool programDataDetected = false; + + /* Check parameters. */ + assert(firmwareFile != NULL); + /* Only continue if the parameters are valid. */ if (firmwareFile != NULL) /*lint !e774 */ { @@ -147,31 +225,36 @@ static bool SRecParserLoadFromFile (char const * firmwareFile, uint32_t addressO { /* Replace the line termination with a string termination. */ line[strcspn(line, "\n\r")] = '\0'; - /* Extra data from the S-record line. */ - if (SRecParserExtractLineData(line, &address, &len, data)) + /* Determine the line type. */ + lineType = SRecParserGetLineType(line); + /* We are only interested in S-record line thatt contains program data. */ + if ( (lineType == SREC_PARSER_LINE_TYPE_S1) || + (lineType == SREC_PARSER_LINE_TYPE_S2) || + (lineType == SREC_PARSER_LINE_TYPE_S3) ) { - /* Only add data if there is actually something to add. */ - if (len > 0) + /* The file contains program data, so update the flag for this. */ + programDataDetected = true; + /* Verify the checksum of the line. */ + if (!SRecParserVerifyChecksum(line)) { - /* Add the extracted data to the firmware data module and add the memory - * address that was specified by the caller. - */ - if (!FirmwareAddData(address + addressOffset, len, data)) - { - /* Error detected. Flag it and abort. */ - result = false; - break; - } + /* Invalid S-record file. Update the result value and stop looping. */ + result = false; + break; } } } /* Close the file now that we are done with it. */ fclose(fp); + /* Update the result in case no program data was encountered. */ + if (!programDataDetected) + { + result = false; + } } } /* Give the result back to the caller. */ return result; -} /*** end of SRecParserLoadFromFile ***/ +} /*** end of SRecParserVerifyFile ***/ /************************************************************************************//** diff --git a/Host/libopenblt.dll b/Host/libopenblt.dll index 6ca163286318b8aaa3a0413d66103b468dcea608..9652c8cc89db26ab3f420b05bd8350f6ab322c19 100644 GIT binary patch delta 49045 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

{&h9- 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 IOrBT&11Jjm@&Et; delta 48652 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