IIRC the coverage maps generated by code compiled with gcc are not
compatible with those created with clang. So I wouldn't expect that
mixing and matching is going to work in a sane manner. (Someone please
jump in and correct me if I'm wrong or confirm that this is accurate.)
However, if you're writing a test harness, you shouldn't even need to
compile the main program to do your fuzzing, right? Unless you're using
a .so which was compiled with gcc or are doing any IPC stuff, you should
be good to go.
Another idea would be to defer the fork() server until just before the
program reads input data (which is compatible with targets compiled with
gcc). I haven't done this myself, but you can read more about it in
section 10 of technical_details.txt or just skip directly to the blog
article which goes into more detail:
https://lcamtuf.blogspot.com/2014/10/fuzzing-binaries-without-execve.html
Let us know how it goes and feel free to post back any notes on
deferring the fork() server if you end up going down that route.
> --
> You received this message because you are subscribed to the Google
> Groups "afl-users" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to
afl-users+...@googlegroups.com
> <mailto:
afl-users+...@googlegroups.com>.
> For more options, visit
https://groups.google.com/d/optout.