[PATCH] ReportsBase.cc: Add assert for member variables

Ryan Long ryan.long at oarcorp.com
Wed Sep 29 14:29:55 UTC 2021


The uncoveredRanges and uncoveredBranch member variables are allocated
as a pair. They are both either NULL or not NULL. Coverity does not know
this though, so this assert is added to ensure they are not NULL before
being dereferenced.

CID 1503710: Dereference after null check

Closes #4428
---
 tester/covoar/ReportsBase.cc | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tester/covoar/ReportsBase.cc b/tester/covoar/ReportsBase.cc
index bc05037..219e5af 100644
--- a/tester/covoar/ReportsBase.cc
+++ b/tester/covoar/ReportsBase.cc
@@ -3,6 +3,7 @@
 #include <errno.h>
 #include <sys/stat.h>
 #include <sys/types.h>
+#include <assert.h>
 
 #include <iomanip>
 #include <sstream>
@@ -231,6 +232,10 @@ void ReportsBase::WriteAnnotatedReport( const std::string& fileName )
       continue;
     }
 
+    // uncoveredRanges and uncoveredBranches are always allocated as a pair
+    // so both are NULL or both are not NULL.
+    assert( info.uncoveredRanges != NULL && info.uncoveredBranches != NULL );
+
     // If uncoveredRanges and uncoveredBranches are empty, then everything
     // must have been covered for this symbol.  Just skip it.
     if (
-- 
1.8.3.1



More information about the devel mailing list