inputflinger_blocking_queue_fuzzer: Bug Fix
Resolved signed integer overflow. A range for duration has been set to prevent integer overflow.
exec/s: 4500
Test: ./inputflinger_blocking_queue_fuzzer clusterfuzz-testcase-minimized-inputflinger_blocking_queue_fuzzer-6214201068552192
Bug: 289472805
Change-Id: I012ced70927af97b4ebc9a314445f340d3b135f5
diff --git a/services/inputflinger/tests/fuzzers/BlockingQueueFuzzer.cpp b/services/inputflinger/tests/fuzzers/BlockingQueueFuzzer.cpp
index e9016bb..219b662 100644
--- a/services/inputflinger/tests/fuzzers/BlockingQueueFuzzer.cpp
+++ b/services/inputflinger/tests/fuzzers/BlockingQueueFuzzer.cpp
@@ -50,8 +50,9 @@
// Pops blocks if it is empty, so only pop up to num elements inserted.
size_t numPops = fdp.ConsumeIntegralInRange<size_t>(0, filled);
for (size_t i = 0; i < numPops; i++) {
- queue.popWithTimeout(
- std::chrono::nanoseconds{fdp.ConsumeIntegral<int64_t>()});
+ // Provide a random timeout up to 1 second
+ queue.popWithTimeout(std::chrono::nanoseconds(
+ fdp.ConsumeIntegralInRange<int64_t>(0, 1E9)));
}
filled > numPops ? filled -= numPops : filled = 0;
},