From 367939a72bfc18f195bb162411d5596a2087d7ec Mon Sep 17 00:00:00 2001 From: "Christian Holler (:decoder)" Date: Mon, 13 Nov 2023 20:31:43 +0000 Subject: [PATCH] Bug 1863729 - IPC Fuzzing: Add MOZ_FUZZ_DUMP_FILTER. r=truber Differential Revision: https://phabricator.services.mozilla.com/D193063 --- tools/fuzzing/ipc/IPCFuzzController.cpp | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/tools/fuzzing/ipc/IPCFuzzController.cpp b/tools/fuzzing/ipc/IPCFuzzController.cpp index af640f764317..5b8865f85d33 100644 --- a/tools/fuzzing/ipc/IPCFuzzController.cpp +++ b/tools/fuzzing/ipc/IPCFuzzController.cpp @@ -1024,12 +1024,30 @@ UniquePtr IPCFuzzController::replaceIPCMessage( return aMsg; } + static bool dumpFilterInitialized = false; + static std::string dumpFilter; + if (!dumpFilterInitialized) { + const char* dumpFilterStr = getenv("MOZ_FUZZ_DUMP_FILTER"); + if (dumpFilterStr) { + dumpFilter = std::string(dumpFilterStr); + } + dumpFilterInitialized = true; + } + if (aMsg->type() != mIPCTriggerMsg) { if ((mIPCDumpMsg && aMsg->type() == mIPCDumpMsg.value()) || (mIPCDumpAllMsgsSize.isSome() && aMsg->Buffers().Size() >= mIPCDumpAllMsgsSize.value())) { - dumpIPCMessageToFile(aMsg, mIPCDumpCount); - mIPCDumpCount++; + if (!dumpFilter.empty()) { + std::string msgName(IPC::StringFromIPCMessageType(aMsg->type())); + if (msgName.find(dumpFilter) != std::string::npos) { + dumpIPCMessageToFile(aMsg, mIPCDumpCount); + mIPCDumpCount++; + } + } else { + dumpIPCMessageToFile(aMsg, mIPCDumpCount); + mIPCDumpCount++; + } } // Not the trigger message. Output additional information here for