[PATCH rtems-tools v1 4/7] TraceReaderLogQEMU.cc: Fix formatting

Ryan Long ryan.long at oarcorp.com
Wed Sep 22 14:35:25 UTC 2021


I changed the definition of discardBuff to

char discardBuff[100]{};

So that every element will be initialized to \0. This function is only used in TraceReaderLogQEMU.cc, and the values that are passed in are

#define QEMU_LOG_IN_KEY "IN: "
#define QEMU_LOG_SECTION_END "----------------"

Neither are close to going over the size of discardBuff, but I can add a check and return false if it does happen to go over that length.

-----Original Message-----
From: Chris Johns <chrisj at rtems.org> 
Sent: Tuesday, September 21, 2021 6:16 PM
To: Ryan Long <ryan.long at oarcorp.com>; devel at rtems.org
Subject: Re: [PATCH rtems-tools v1 4/7] TraceReaderLogQEMU.cc: Fix formatting

On 22/9/21 2:45 am, Ryan Long wrote:
> ---
>  tester/covoar/TraceReaderLogQEMU.cc | 25 +++++++++++++------------
>  1 file changed, 13 insertions(+), 12 deletions(-)
> 
> diff --git a/tester/covoar/TraceReaderLogQEMU.cc 
> b/tester/covoar/TraceReaderLogQEMU.cc
> index c303d08..91ed5c7 100644
> --- a/tester/covoar/TraceReaderLogQEMU.cc
> +++ b/tester/covoar/TraceReaderLogQEMU.cc
> @@ -53,8 +53,8 @@
>  
>  bool ReadUntilFound( std::ifstream& file, const char* line )  {
> -  char discardBuff[100];
> -  size_t  len = strlen( line );
> +  char   discardBuff[100];

100 bytes on the stack and not initialised ...

> +  size_t len = strlen( line );>
>    do {
>      file.read( discardBuff, 99 );

Read one less than the buffer so index 99 is still not initialised ...

> @@ -62,9 +62,11 @@ bool ReadUntilFound( std::ifstream& file, const char* line )
>        return false;
>      }
>  
> -    if ( strncmp( discardBuff, line, len ) == 0 )
> +    if ( strncmp( discardBuff, line, len ) == 0 ) {

Making a call that assumes index 99 is '\0'! Does the discard buffer need to be memset to 0?

What if the length of line is greater than 100? Is that a valid find and so a partial match is OK? Do the lengths need to match?

Chris


More information about the devel mailing list