Skip to content

danluu/Fuzz.jl

Repository files navigation

You probably don't want to use this. I spent a few minutes writing the most naive possible fuzzer, to see if it would turn up any bugs. Turns out, this terrible method can generate bugs faster than I can debug them. However, the general approach and the specific implementation are pretty lame. If you're looking at this, you probably want something like Csmith or jsfunfuzz.

I'm planning to, eventually, write a real fuzzer to see if something that generates random expressions turns up more bugs than this. Suggestions / pull requests welcome.

Confirmed/debugged bugs

8353: parser loses track of location when parse is called

8352: underspecified type for writemime

8341: EOF mixed up in unicode hangs parser

8329: changing number of BLAS threads before operation causes segfault

8302: array sized incorrectly

8286: exponent of large number causes crashes with SIGABRT

8277: code near exception incorrectly optimized out

8266: hang/bad result on ndigits

8241: hang/segfault on long symbol

8239: segfault on code_native/code_llvm

TODO: debug these bugs

searchindex returns an unclear error message:

julia> searchindex("q8NWiRVEW3NRTGXW6At7qN5aU2dhJ0ZGHSMfcH50k1Xsn1HIiPNRO0NXVhafnLkEd55","wKPx3QydhlLKz3fZQK3fCVhl6ZwMoFDq18ti1Ozcswi\
Av0Yq4k9utZgoN4KhdvIJiUjQcTIFZyD1cNmdsf1PcmmXMeh10N1",-234321342423423234534534543)
ERROR: error compiling searchindex: error compiling _searchindex: cannot convert type to a julia type
 in searchindex at string.jl:307

sprandn with bad args can take an arbitraily long time before erroring out.

displayable psuedo-randomly hangs.

addprocs of negative Int128 causes something crazy to happen.

replace on string containing bad characters errors out instead of skipping past bad character. See sandbox/3.

Odd non-bugs

Special casing of some operators

Address space randomiziation causes some methods to be randomized across invocations of julia.

About

World's dumbest fuzzer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages