aboutsummaryrefslogtreecommitdiff
path: root/fuzzers/fuzz_unpickle_session.cpp
diff options
context:
space:
mode:
authorMark Haines <mjark@negativecurvature.net>2016-05-23 17:32:24 +0100
committerMark Haines <mjark@negativecurvature.net>2016-05-23 17:32:24 +0100
commitf47aabd094a4eafeed5a510c650d7a063a148076 (patch)
tree53fbdcc5d028246bb0a41760810aa722ac2a86d7 /fuzzers/fuzz_unpickle_session.cpp
parentaacf1154684885d244182eb9cd68e429d72ee57a (diff)
Add support for building fuzzers using american fuzzy lop
Builds fuzzers using http://lcamtuf.coredump.cx/afl/
Diffstat (limited to 'fuzzers/fuzz_unpickle_session.cpp')
-rw-r--r--fuzzers/fuzz_unpickle_session.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/fuzzers/fuzz_unpickle_session.cpp b/fuzzers/fuzz_unpickle_session.cpp
new file mode 100644
index 0000000..6edbc96
--- /dev/null
+++ b/fuzzers/fuzz_unpickle_session.cpp
@@ -0,0 +1,14 @@
+#include "olm/session.hh"
+#include "fuzzing.hh"
+
+int main(int argc, const char *argv[]) {
+ int pickle_fd = STDIN_FILENO;
+ uint8_t * pickle_buffer;
+ ssize_t pickle_length = check_errno(
+ "Error reading pickle file", read_file(pickle_fd, &pickle_buffer)
+ );
+ olm::Session * session = new olm::Session;
+ unpickle(pickle_buffer, pickle_buffer + pickle_length, *session);
+ free(pickle_buffer);
+ delete session;
+}