[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/2] fuzz: use ITIMER_REAL for timeouts
From: |
Alexander Bulekov |
Subject: |
[PATCH 1/2] fuzz: use ITIMER_REAL for timeouts |
Date: |
Wed, 4 Aug 2021 09:56:20 -0400 |
Using ITIMER_VIRTUAL is a bad idea, if the fuzzer hits a blocking
syscall - e.g. ppoll with a NULL timespec. This causes timeout issues
while fuzzing some block-device code. Fix that by using wall-clock time.
This might cause inputs to timeout sometimes due to scheduling
effects/ambient load, but it is better than bringing the entire fuzzing
process to a halt.
Based-on: <20210713150037.9297-1-alxndr@bu.edu>
Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
---
tests/qtest/fuzz/generic_fuzz.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/qtest/fuzz/generic_fuzz.c b/tests/qtest/fuzz/generic_fuzz.c
index 3e8ce29227..de427a3727 100644
--- a/tests/qtest/fuzz/generic_fuzz.c
+++ b/tests/qtest/fuzz/generic_fuzz.c
@@ -695,7 +695,7 @@ static void generic_fuzz(QTestState *s, const unsigned char
*Data, size_t Size)
while (cmd && Size) {
/* Reset the timeout, each time we run a new command */
if (timeout) {
- setitimer(ITIMER_VIRTUAL, &timer, NULL);
+ setitimer(ITIMER_REAL, &timer, NULL);
}
/* Get the length until the next command or end of input */
--
2.30.2