-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LeakSanitizer fatal errors #243
Comments
NOTE: fuzzer is being run with |
Another similar:
|
lowtech approach: limiting it to a single thread and printing the hex version of the input at the beginning of the fuzz target might give you a repro? |
Note, mediasoup-worker is single thread. I'll test that tomorrow anyway. |
Na, same happens with |
NOTE: The crash file generated when the error in the issue description happens is completely empty (0 bytes). Also, the Does it mean that fuzzer is testing with |
zero length input can happen from libfuzzer. Not in our typical usecases because of the demuxing |
Yep, it must be anything else. |
I know that, by forcing a memory leak in the code (non deallocating objects), a similar failure happens. So IMHO it should be related. |
Right now this strange error just happens when testing
|
@fippo theoretically if I call the fuzzer binary passing as argument a crash report file, it should reproduce the issue(if not fixed), right? However when I do it I see no output other than the annoying |
@jmillan I strongly think there is a leaking issue in data += packetLen;
len -= packetLen;
if (first == nullptr)
first = current;
else
last->SetNext(current);
last = current->GetNext() != nullptr ? current->GetNext() : current; I've tested by disabling some specific RTCP parsers in there and the issue also happens. So IHMO there is a leak when parsing compound packets. |
It may even happen that
|
I've added some logs in
The code in if (RTCP::Packet::IsRtcp(data, len))
{
std::cout << ">>> 1) it looks like RTCP" << std::endl;
RTCP::Packet* packet = RTCP::Packet::Parse(data, len);
if (packet)
{
std::cout << ">>> 2) yes, it was valid RTCP :)" << std::endl;
delete packet;
}
else
{
std::cout << ">>> 3) no, it was no a real RTCP packet!!!" << std::endl;
}
} |
OK, it seems that in More info here. |
OK, so it was all! By enabling LSAN_OPTIONS=verbosity=1:log_threads=1 ./out/Release/mediasoup-worker-fuzzer -artifact_prefix=fuzzer/reports/ -max_len=1800 -workers=1 fuzzer/new-corpus fuzzer/corpora/rtcp-corpus we get the following: #247. So let's close this issue. |
… possible to inspect memory leaks (related to #243)
… possible to inspect memory leaks (related to versatica#243)
fuzzer generates this output:
@fippo do you know how to interpret this error?
The text was updated successfully, but these errors were encountered: