From 4901435a0ea63a42850555e1ceb0db026ca3f1bd Mon Sep 17 00:00:00 2001 From: Denis Kasak Date: Thu, 8 Jul 2021 14:23:55 +0000 Subject: [PATCH] Improve cleanup in fuzzing harnesses --- fuzzers/fuzz_decode_message.cpp | 2 ++ fuzzers/fuzz_decrypt.cpp | 14 +++++++++----- fuzzers/fuzz_group_decrypt.cpp | 14 +++++++++----- fuzzers/fuzz_unpickle_account.cpp | 2 ++ fuzzers/fuzz_unpickle_session.cpp | 2 ++ fuzzers/include/fuzzing.hh | 11 +++++------ 6 files changed, 29 insertions(+), 16 deletions(-) diff --git a/fuzzers/fuzz_decode_message.cpp b/fuzzers/fuzz_decode_message.cpp index 2ef734c..40faf97 100644 --- a/fuzzers/fuzz_decode_message.cpp +++ b/fuzzers/fuzz_decode_message.cpp @@ -11,4 +11,6 @@ int main(int argc, const char *argv[]) { decode_message(*reader, message_buffer, message_length, 8); free(message_buffer); delete reader; + + return EXIT_SUCCESS; } diff --git a/fuzzers/fuzz_decrypt.cpp b/fuzzers/fuzz_decrypt.cpp index 0b48060..8181070 100644 --- a/fuzzers/fuzz_decrypt.cpp +++ b/fuzzers/fuzz_decrypt.cpp @@ -3,11 +3,10 @@ #include "fuzzing.hh" int main(int argc, const char *argv[]) { - size_t ignored; if (argc <= 3) { const char * message = "Usage: decrypt: " " \n"; - ignored = write(STDERR_FILENO, message, strlen(message)); + (void)write(STDERR_FILENO, message, strlen(message)); exit(3); } @@ -59,7 +58,12 @@ int main(int argc, const char *argv[]) { ) ); - ignored = write(STDOUT_FILENO, plaintext, length); - ignored = write(STDOUT_FILENO, "\n", 1); - return ignored; + (void)write(STDOUT_FILENO, plaintext, length); + (void)write(STDOUT_FILENO, "\n", 1); + + free(session_buffer); + free(message_buffer); + free(tmp_buffer); + + return EXIT_SUCCESS; } diff --git a/fuzzers/fuzz_group_decrypt.cpp b/fuzzers/fuzz_group_decrypt.cpp index bb12d0e..03b7bc4 100644 --- a/fuzzers/fuzz_group_decrypt.cpp +++ b/fuzzers/fuzz_group_decrypt.cpp @@ -3,10 +3,9 @@ #include "fuzzing.hh" int main(int argc, const char *argv[]) { - size_t ignored; if (argc <= 2) { const char * message = "Usage: decrypt \n"; - ignored = write(STDERR_FILENO, message, strlen(message)); + (void)write(STDERR_FILENO, message, strlen(message)); exit(3); } @@ -67,7 +66,12 @@ int main(int argc, const char *argv[]) { ) ); - ignored = write(STDOUT_FILENO, plaintext, length); - ignored = write(STDOUT_FILENO, "\n", 1); - return ignored; + (void)write(STDOUT_FILENO, plaintext, length); + (void)write(STDOUT_FILENO, "\n", 1); + + free(session_buffer); + free(message_buffer); + free(tmp_buffer); + + return EXIT_SUCCESS; } diff --git a/fuzzers/fuzz_unpickle_account.cpp b/fuzzers/fuzz_unpickle_account.cpp index 12c6d9b..7334cee 100644 --- a/fuzzers/fuzz_unpickle_account.cpp +++ b/fuzzers/fuzz_unpickle_account.cpp @@ -11,4 +11,6 @@ int main(int argc, const char *argv[]) { unpickle(pickle_buffer, pickle_buffer + pickle_length, *account); free(pickle_buffer); delete account; + + return EXIT_SUCCESS; } diff --git a/fuzzers/fuzz_unpickle_session.cpp b/fuzzers/fuzz_unpickle_session.cpp index 6edbc96..1d1f906 100644 --- a/fuzzers/fuzz_unpickle_session.cpp +++ b/fuzzers/fuzz_unpickle_session.cpp @@ -11,4 +11,6 @@ int main(int argc, const char *argv[]) { unpickle(pickle_buffer, pickle_buffer + pickle_length, *session); free(pickle_buffer); delete session; + + return EXIT_SUCCESS; } diff --git a/fuzzers/include/fuzzing.hh b/fuzzers/include/fuzzing.hh index 6c22f6f..6542ccd 100644 --- a/fuzzers/include/fuzzing.hh +++ b/fuzzers/include/fuzzing.hh @@ -77,13 +77,12 @@ size_t check_error( ) { if (value == olm_error()) { const char * olm_message = f(object); - ssize_t ignored; - ignored = write(STDERR_FILENO, message, strlen(message)); - ignored = write(STDERR_FILENO, ": ", 2); - ignored = write(STDERR_FILENO, olm_message, strlen(olm_message)); - ignored = write(STDERR_FILENO, "\n", 1); + (void)write(STDERR_FILENO, message, strlen(message)); + (void)write(STDERR_FILENO, ": ", 2); + (void)write(STDERR_FILENO, olm_message, strlen(olm_message)); + (void)write(STDERR_FILENO, "\n", 1); + exit(2); - return ignored; } return value; }