Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » U++ Core » MemorySanitizer: use-of-uninitialized-value in CoWork
MemorySanitizer: use-of-uninitialized-value in CoWork [message #52106] Fri, 19 July 2019 22:17 Go to previous message
Novo is currently offline  Novo
Messages: 1358
Registered: December 2006
Ultimate Contributor
Could you please apply a patch below to CoWork?
MemorySanitizer is complaining about uninitialized memory. Theoretically, default constructor of std::exception_ptr is supposed to initialized it, but practically I'm getting a warning.
The problem can be easily fixed.

diff --git a/uppsrc/Core/CoWork.cpp b/uppsrc/Core/CoWork.cpp
index 46e49dc15..abfbae2b8 100644
--- a/uppsrc/Core/CoWork.cpp
+++ b/uppsrc/Core/CoWork.cpp
@@ -113,7 +113,7 @@ void CoWork::Pool::DoJob(MJob& job)
        }
 
        lock.Leave();
-       std::exception_ptr exc;
+       std::exception_ptr exc = nullptr;
        try {
                if(looper)
                        work->looper_fn();
@@ -370,6 +370,7 @@ int CoWork::GetWorkerIndex()
 }
 
 CoWork::CoWork()
+: exc(nullptr)
 {
        LLOG("CoWork constructed " << FormatHex(this));
        todo = 0;

Patched file is attached.
  • Attachment: CoWork.cpp
    (Size: 7.33KB, Downloaded 159 times)


Regards,
Novo
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Sorting of strings is broken
Next Topic: Inconsistency between Vector and Index
Goto Forum:
  


Current Time: Thu Mar 28 23:31:46 CET 2024

Total time taken to generate the page: 0.01050 seconds