[PATCH rtems-tools v1 4/7] TraceReaderLogQEMU.cc: Fix formatting
Chris Johns
chrisj at rtems.org
Tue Sep 21 23:16:17 UTC 2021
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