You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If you are not using conda: how did you install the RDKit? Self-built using Cmake
Description:
Memory sanitizer currently fails when running mol_deserialization_fuzzer.
This prevents memory sanitizer from being activated.
(Note that you can also test this with valgrind)
I believe the fuzz report can be fixed by using a default initializer on tloc
T tloc = {};
This way if the stream can't read at least tloc has a default value. However the result will always be 0 for ints, floats, etc. I tend to think this is ok for these operations, otherwise we could throw an exception:
if (is)
/// swap bytes
else
throw RDKitStreamException("Could not read more bytes from stream');
But this EOF check will be done a lot.
The current behavior is to return a random uninitialized value, which probably does the right thing most of the time because it won't match the expected pickle versioning...
Configuration:
Description:
Memory sanitizer currently fails when running
mol_deserialization_fuzzer
.This prevents memory sanitizer from being activated.
(Note that you can also test this with valgrind)
Build the fuzzer:
Reproduce:
The problem is that
streamRead
rdkit/Code/RDGeneral/StreamOps.h
Lines 246 to 250 in 5cd27a2
reads into the variable
tloc
. But if the read on the stream fails,tloc
will not be initialized.rdkit/Code/GraphMol/MolPickler.cpp
Lines 814 to 815 in 66a38d3
In line 815 we then read
tmpInt
which uses an uninitialized value and msan/valgrind fails.The text was updated successfully, but these errors were encountered: