summaryrefslogtreecommitdiffstats
path: root/tools/ipc_fuzzer
diff options
context:
space:
mode:
authorerikchen <erikchen@chromium.org>2016-02-23 14:22:44 -0800
committerCommit bot <commit-bot@chromium.org>2016-02-23 22:23:58 +0000
commitc56bf1f60ddeef1a903108ad5825cdc47d3a9e67 (patch)
tree24ef03bc1a5498b6e178c5188e0aaa2142bf497c /tools/ipc_fuzzer
parent24820c067cb649a4eee2387eda8761e776a18d63 (diff)
downloadchromium_src-c56bf1f60ddeef1a903108ad5825cdc47d3a9e67.zip
chromium_src-c56bf1f60ddeef1a903108ad5825cdc47d3a9e67.tar.gz
chromium_src-c56bf1f60ddeef1a903108ad5825cdc47d3a9e67.tar.bz2
Add custom fuzzing logic for SharedMemoryHandle on Mac and Windows.
The fuzzer always creates an invalid SharedMemoryHandle. Previously, the fuzzer couldn't create messages that contained a SharedMemoryHandle. BUG= Review URL: https://codereview.chromium.org/1729633002 Cr-Commit-Position: refs/heads/master@{#377104}
Diffstat (limited to 'tools/ipc_fuzzer')
-rw-r--r--tools/ipc_fuzzer/fuzzer/fuzzer.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/tools/ipc_fuzzer/fuzzer/fuzzer.cc b/tools/ipc_fuzzer/fuzzer/fuzzer.cc
index 54d9461..497619a 100644
--- a/tools/ipc_fuzzer/fuzzer/fuzzer.cc
+++ b/tools/ipc_fuzzer/fuzzer/fuzzer.cc
@@ -9,6 +9,7 @@
#include <vector>
#include "base/macros.h"
+#include "base/memory/shared_memory_handle.h"
#include "base/strings/string_util.h"
#include "build/build_config.h"
#include "ipc/ipc_message.h"
@@ -452,6 +453,18 @@ struct FuzzTraits<base::NullableString16> {
}
};
+#if defined(OS_WIN) || defined(OS_MACOSX)
+template <>
+struct FuzzTraits<base::SharedMemoryHandle> {
+ static bool Fuzz(base::SharedMemoryHandle* p, Fuzzer* fuzzer) {
+ // This generates an invalid SharedMemoryHandle. Generating a valid
+ // SharedMemoryHandle requires setting/knowing state in both the sending and
+ // receiving process, which is not currently possible.
+ return true;
+ }
+};
+#endif // defined(OS_WIN) || defined(OS_MACOSX)
+
template <>
struct FuzzTraits<base::Time> {
static bool Fuzz(base::Time* p, Fuzzer* fuzzer) {