From 0fdff745eed7ee90e81e3e04a6cb5e7dc7a3ebb5 Mon Sep 17 00:00:00 2001 From: Taylor Hornby Date: Mon, 28 Oct 2019 17:49:37 -0600 Subject: [PATCH] Add fuzzing stub for AddrMan deserialization --- src/fuzzing/DeserializeAddrMan/fuzz.cpp | 13 +++++++++++++ .../input/peers.dat-minus-4-byte-header | Bin 0 -> 160686 bytes 2 files changed, 13 insertions(+) create mode 100644 src/fuzzing/DeserializeAddrMan/fuzz.cpp create mode 100644 src/fuzzing/DeserializeAddrMan/input/peers.dat-minus-4-byte-header diff --git a/src/fuzzing/DeserializeAddrMan/fuzz.cpp b/src/fuzzing/DeserializeAddrMan/fuzz.cpp new file mode 100644 index 000000000..1b520efc8 --- /dev/null +++ b/src/fuzzing/DeserializeAddrMan/fuzz.cpp @@ -0,0 +1,13 @@ +#include "addrman.h" +#include "streams.h" + +int main (int argc, char *argv[]) { + CAddrMan addrman; + CAutoFile filein(fopen(argv[1], "rb"), SER_DISK, CLIENT_VERSION); + try { + filein >> addrman; + return 0; + } catch (const std::exception&) { + return -1; + } +} diff --git a/src/fuzzing/DeserializeAddrMan/input/peers.dat-minus-4-byte-header b/src/fuzzing/DeserializeAddrMan/input/peers.dat-minus-4-byte-header new file mode 100644 index 0000000000000000000000000000000000000000..ce52b0a1bc8774966e7739e76f22310da5098da5 GIT binary patch literal 160686 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 literal 0 HcmV?d00001