A null pointer dereference happens later in the program execution if
the files are cleaned up at the end of the ExecutableInfo constructor.
This change fixes the null pointer dereference.
---
 tester/covoar/ExecutableInfo.cc | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/tester/covoar/ExecutableInfo.cc b/tester/covoar/ExecutableInfo.cc
index 1396519..187bb77 100644
--- a/tester/covoar/ExecutableInfo.cc
+++ b/tester/covoar/ExecutableInfo.cc
@@ -82,13 +82,16 @@ namespace Coverage {
       throw;
     }
 
-    debug.end();
-    executable.end();
-    executable.close();
+    // Can't cleanup handles until the destructor because the information is
+    // referenced elsewhere. NOTE: This could cause problems from too many open
+    // file descriptors.
   }
 
   ExecutableInfo::~ExecutableInfo()
   {
+    debug.end();
+    executable.end();
+    executable.close();
   }
 
   void ExecutableInfo::dumpCoverageMaps( void ) {
-- 
2.27.0

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to