Make the fuzzer check size before computing rsize.
Likewise for fanout and rfanout.
Change-Id: I5182fb69bf9c391cce7857519d91b1d00a501f42
Reviewed-on: https://code-review.googlesource.com/c/34010
Reviewed-by: Paul Wankadia <junyer@google.com>
diff --git a/re2/fuzzing/re2_fuzzer.cc b/re2/fuzzing/re2_fuzzer.cc
index cde76e4..2068685 100644
--- a/re2/fuzzing/re2_fuzzer.cc
+++ b/re2/fuzzing/re2_fuzzer.cc
@@ -23,16 +23,20 @@
// Don't waste time fuzzing high-size programs.
// (They can cause bug reports due to fuzzer timeouts.)
int size = re.ProgramSize();
+ if (size > 9999)
+ return;
int rsize = re.ReverseProgramSize();
- if (size > 9999 || rsize > 9999)
+ if (rsize > 9999)
return;
// Don't waste time fuzzing high-fanout programs.
// (They can also cause bug reports due to fuzzer timeouts.)
std::map<int, int> histogram;
int fanout = re.ProgramFanout(&histogram);
+ if (fanout > 9)
+ return;
int rfanout = re.ReverseProgramFanout(&histogram);
- if (fanout > 9 || rfanout > 9)
+ if (rfanout > 9)
return;
StringPiece sp1, sp2, sp3, sp4;