Avoid setting DiscardableMemoryAllocator in `LLVMFuzzerTestOneInput()`
If compiled with chromium, a DiscardableMemoryAllocator is already
set by `LLVMFuzzerInitialize()` in chromium before calling
`LLVMFuzzerTestOneInput()` when running `pdfium_fuzzer`, which causes
DCHECK failure in DiscardableMemoryAllocator::SetInstance() since the
allocator is already set.
This CL removes the steps of setting up DiscardableMemoryAllocator in
`LLVMFuzzerTestOneInput()` to avoid the DCHECK failure. And it
simplifies the fuzzer process to only set up the
DiscardableMemoryAllocator once.
Bug: chromium:1440491
Change-Id: I48e678253dacd696bd0fbf01805e150d9026ac53
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/107890
Commit-Queue: Nigi <nigi@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/testing/fuzzers/BUILD.gn b/testing/fuzzers/BUILD.gn
index 35624cb..698987f 100644
--- a/testing/fuzzers/BUILD.gn
+++ b/testing/fuzzers/BUILD.gn
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import("//build_overrides/build.gni")
import("../../pdfium.gni")
config("fuzzer_config") {
@@ -247,9 +246,6 @@
if (is_public && pdf_enable_xfa) {
deps += [ ":fuzzer_xfa_process_state" ]
}
- if (build_with_chromium) {
- defines += [ "BUILD_WITH_CHROMIUM" ]
- }
}
}
@@ -620,11 +616,5 @@
pdfium_fuzzer("pdfium_fuzzer") {
sources = [ "pdfium_fuzzer.cc" ]
deps = [ ":fuzzer_helper" ]
- if (build_with_chromium) {
- deps += [
- "//base",
- "//base/test:test_support",
- ]
- }
public_fuzzer = true
}
diff --git a/testing/fuzzers/DEPS b/testing/fuzzers/DEPS
index d577044..fe9eaf6 100644
--- a/testing/fuzzers/DEPS
+++ b/testing/fuzzers/DEPS
@@ -1,7 +1,4 @@
include_rules = [
'+fxbarcode',
'+xfa',
-
- # Only used when the fuzzer is embedded in Chromium.
- '+base',
]
diff --git a/testing/fuzzers/pdfium_fuzzer.cc b/testing/fuzzers/pdfium_fuzzer.cc
index 7e25fed..e70702a 100644
--- a/testing/fuzzers/pdfium_fuzzer.cc
+++ b/testing/fuzzers/pdfium_fuzzer.cc
@@ -6,12 +6,6 @@
#include "testing/fuzzers/pdfium_fuzzer_helper.h"
-#if defined(BUILD_WITH_CHROMIUM)
-#include "base/memory/discardable_memory_allocator.h"
-#include "base/no_destructor.h"
-#include "base/test/test_discardable_memory_allocator.h"
-#endif
-
class PDFiumFuzzer : public PDFiumFuzzerHelper {
public:
PDFiumFuzzer() = default;
@@ -21,12 +15,6 @@
};
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-#if defined(BUILD_WITH_CHROMIUM)
- static base::NoDestructor<base::TestDiscardableMemoryAllocator>
- test_memory_allocator;
- base::DiscardableMemoryAllocator::SetInstance(test_memory_allocator.get());
-#endif
-
PDFiumFuzzer fuzzer;
fuzzer.RenderPdf(reinterpret_cast<const char*>(data), size);
return 0;