Fuzzing module for various string operations, currently focusing on

encoding and decoding.

There are bunches of places where we don't want to invest in a full
fuzzer, but we would like to make sure that some string operation
can handle all its possible inputs.  This fuzzer uses the first byte
of its input to decide what to do with the rest of the input.  Right
now, all the possibilities are decoding a string, and seeing whether
it is decodeable.  If it is, we try to re-encode it and do the whole
thing again, to make sure we get the same result.

This turned up a lot of bugs in the key-value parser, and I think it
will help in other cases too.

Closes ticket 28808.
This commit is contained in:
Nick Mathewson
2018-12-10 10:00:26 -05:00
parent f0a8664677
commit 845e8dbe59
3 changed files with 277 additions and 0 deletions
+1
View File
@@ -13,6 +13,7 @@ FUZZERS = """
iptsv2
microdesc
socks
strops
vrs
"""