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
CMPCOV breaks compilation on LLVM16/18 in some cases #2079
Comments
I didn’t have the time to investigate other AFL++ versions yet or find other software packages that show the same behavior. Maybe putting it out here will bring some more information to light eventually |
just quickly as I am on vacation: llvm 17, 18 and 19 worked for me on this specific libxml2 version with LAF_ALL without any errors |
can you try versions from apt.llvm.org (with llvm.sh installed) please? |
I’ll try to purge all the LLVM versions again and test again.. |
actually I was wrong, because your how-to was wrong :)
I can reproduce this now |
|
Ah wow okay my bad.. of course the AFL_* environment vars need to be applied to the Glad i wasn’t there imagining things though.. |
I pushed a fix to the dev branch |
Fix seems to work, as I was successfully able to compile multiple versions that didn't work before.
I consider this issue resolved. Thanks for the prompt fix! |
All experiments were conducted on the following setup:
afl-clang-fast
+CMPCOV
(s. below)Note:: AFL++ was freshly compiled after switching to a different LLVM version!
Note:
CMPLOG
doesn't seem to show the below described behavior.Setup
The different LLVM versions were installed side-by-side via the
llvm.sh
script as offered on the LLVM websiteSetting the different LLVM versions to be the default was achieved by my littler helper script
Fetching libxml2
libxml2
has been downloaded from the RO-mirror on GitHub in the form ofX.tar.gz
releases, like so:Compilation
Observations
libxml2
fail(s) to compile withCMPCOV
and throws a stack-trace.libxml2
versionsv2.9.XX
are affected, while libxml2v2.10.0
seems to work just fine!libxml2-2.19.14
andlibxml2-2.10.0
hereLLVM 16
andLLVM 18
.LLVM 17
does not exhibit this behavior as (parts of)CMPCOV
were disabled due to bugs (s. below).As for which
libxml2
v2.9.x
versions are affected, I tried multiple ones fromv.2.9.14
down tov2.9.4
and all of them showed the same behavior to me.Details
Find below the details. If useful, I can attach the mentioned
XXX.sh
andYYY.c
files as suggested by the stack-tracelibxml2-2.19.14 | AFL 4.21a | LLVM 16
libxml2-2.19.14 | AFL 4.21a | LLVM 17
Compilation runs until the end and produces a binary as expected.
Note: The WARNING part is easily missed and should IMHO result in an abort. I missed this initially..
libxml2-2.19.14 | AFL 4.21a | LLVM 18
The text was updated successfully, but these errors were encountered: