summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hanselmann <public@hansmi.ch>2021-07-08 22:57:26 +0200
committerMichael Hanselmann <public@hansmi.ch>2021-07-08 23:18:14 +0200
commit6236042f76942ff797f9e58319943b4524a2901e (patch)
treed8ac3ca61384112c3696165120e0b67d169531f3
parentab9696d6b79f2e77261fcee0467f357a2dab0251 (diff)
usbredirparserfuzz: Improve handling of I/O errors
Signed-off-by: Michael Hanselmann <public@hansmi.ch>
-rw-r--r--fuzzing/usbredirparserfuzz.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/fuzzing/usbredirparserfuzz.cc b/fuzzing/usbredirparserfuzz.cc
index 792a454..ecd3c96 100644
--- a/fuzzing/usbredirparserfuzz.cc
+++ b/fuzzing/usbredirparserfuzz.cc
@@ -430,15 +430,21 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
usbredirparser_has_data_to_write(parser.get())) {
if (fdp->remaining_bytes() > 0) {
ret = usbredirparser_do_read(parser.get());
- if (ret != 0) {
+
+ switch (ret) {
+ case usbredirparser_read_parse_error:
+ // Keep reading
+ break;
+ default:
log("usbredirparser_do_read failed: %d\n", ret);
goto out;
}
+
}
while (usbredirparser_has_data_to_write(parser.get())) {
ret = usbredirparser_do_write(parser.get());
- if (ret != 0) {
+ if (ret < 0) {
log("usbredirparser_do_write failed: %d\n", ret);
goto out;
}