Adjusted number of bytes to be read CID 1506208: Out-of-bounds access CID 1506209: Out-of-bounds access
Closes #4485 --- tester/covoar/GcovData.cc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tester/covoar/GcovData.cc b/tester/covoar/GcovData.cc index 02e7489..3b787ec 100644 --- a/tester/covoar/GcovData.cc +++ b/tester/covoar/GcovData.cc @@ -129,7 +129,7 @@ namespace Gcov { preamble.timestamp = gcnoPreamble.timestamp; //Write preamble - gcdaFile.write( (char *) &preamble , 4 * sizeof( preamble ) ); + gcdaFile.write( (char *) &preamble , sizeof( preamble ) ); if ( gcdaFile.fail() ) { std::cerr << "Error while writing gcda preamble to a file " << gcdaFileName << std::endl; @@ -399,11 +399,10 @@ namespace Gcov { uint32_t desiredMagic ) { - int length; - - length = sizeof( gcov_preamble ); - gcovFile.read( (char *) &preamble, 4 * sizeof( gcov_preamble ) ); - if ( gcovFile.gcount() != 4 * sizeof( gcov_preamble ) ) { + // Read the gcov preamble and make sure it is the right length and has the + // magic number + gcovFile.read( (char *) preamble, sizeof( gcov_preamble ) ); + if ( gcovFile.gcount() != sizeof( gcov_preamble ) ) { std::cerr << "Error while reading file preamble" << std::endl; return -1; } @@ -415,7 +414,7 @@ namespace Gcov { return -1; } - return length / 4; + return sizeof( gcov_preamble ) / 4; } bool GcovData::readFunctionFrame( -- 1.8.3.1 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel