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 |
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 164 times)
Regards,
Novo
|
|
|
|
Re: MemorySanitizer: use-of-uninitialized-value in CoWork [message #52109 is a reply to message #52108] |
Sat, 20 July 2019 01:27 |
Novo
Messages: 1358 Registered: December 2006
|
Ultimate Contributor |
|
|
mirek wrote on Fri, 19 July 2019 17:50This really feels like sanitizer bug, but whatever....
Thanks!
I do not think this is a bug. A team working on sanitizers is exceptionally good.
MemorySanitizer reports all uninitialized memory reads, including, for example, memmove and memcpy of uninitialized memory. This is not necessarily a bug, but this allows the sanitizer to be fast unlike valgrind.
The problem is that all sanitizers exit app on first detected error.
Regards,
Novo
|
|
|
|
Goto Forum:
Current Time: Wed May 08 05:04:46 CEST 2024
Total time taken to generate the page: 0.02540 seconds
|