[llvm-dev] Fuzzing complex programs
Greg Stark via llvm-dev
llvm-dev at lists.llvm.org
Thu Sep 3 11:03:56 PDT 2015
On Thu, Sep 3, 2015 at 6:54 PM, Kostya Serebryany <kcc at google.com> wrote:
> Looks correct.
Ah! With a fresh pair of eyes it's obvious what was wrong. I had
compiled everything with sanitize-coverage except the Fuzzer code
itself but that included the file with the wrapper function which
calls the target function. And with the NULL data argument it wasn't
passing the wrapper function. So no coverage. I'm still puzzled why
about the NULL argument but compiling that file with coverage checking
has made it proceed.
> Can you post the output of libFuzzer here?
> Something like
I haven't looked into why yet, this is probably something simple but
for the sake of it this is what I'm getting now with the above fixed:
/usr/local/pgsql/bin/psql -c 'select fuzz()'
Flag: verbosity 9
Flag: iterations 100
Flag: runs 10
Flag: save_minimized_corpus 1
Seed: 3416380570
SetTimer 601
Tokens: {}
PreferSmall: 1
#0 READ cov: 0 bits: 0 units: 1 exec/s: 0
Called with Data=(nil) size=0
#1 pulse cov: 13790 bits: 21 units: 1 exec/s: 0
NEW0: 13790 L 0
#1 INITED cov: 13790 bits: 21 units: 1 exec/s: 0
Written corpus of 1 files to /var/tmp/corpus
Reload: read 1 new units.
Called with Data=0x60600000e480 size=64
#2 pulse cov: 14202 bits: 252 units: 1 exec/s: 0
#2 NEW cov: 14202 bits: 252 units: 2 exec/s: 0 L: 64
Written to /var/tmp/corpus/67ffe57491b2903668530b6182e5aeb6113d3f28
Called with Data=0x60600000e480 size=64
#3 NEW cov: 14278 bits: 257 units: 3 exec/s: 0 L: 64
Written to /var/tmp/corpus/67ffe57491b2903668530b6182e5aeb6113d3f28
Called with Data=0x60600000e480 size=64
#4 pulse cov: 14298 bits: 262 units: 3 exec/s: 0
#4 NEW cov: 14298 bits: 262 units: 4 exec/s: 0 L: 64
Written to /var/tmp/corpus/1ae4df94333696e5bba164df9cf5e93df7a72e20
Called with Data=0x60600000e480 size=64
#5 NEW cov: 14311 bits: 267 units: 5 exec/s: 0 L: 64
Written to /var/tmp/corpus/c167e6439183f0df3ea25fcd30da80b27293e737
Called with Data=0x60600000e480 size=64
#6 NEW cov: 14311 bits: 271 units: 6 exec/s: 0 L: 64
Written to /var/tmp/corpus/21e9212a20031de685b5b20d5d7752b17780303a
Reload: read 0 new units.
Called with Data=0x60600000e480 size=64
PANIC: ERRORDATA_STACK_SIZE exceeded
STATEMENT: select fuzz()
LOG: server process (PID 8650) was terminated by signal 6: Aborted
DETAIL: Failed process was running: select fuzz()
PANIC: ERRORDATA_STACK_SIZE exceeded
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
--
greg
More information about the llvm-dev
mailing list