Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Side by Side Diff: pdf/pdfium/fuzzers/pdfium_fuzzer.cc

Issue 1820353002: Move PDFium libfuzzers to pdf/pdfium/fuzzers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pdf/pdfium/fuzzers/dicts/pdf_xml.dict ('k') | testing/libfuzzer/fuzzers/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This fuzzer is simplified & cleaned up pdfium/samples/pdfium_test.cc 5 // This fuzzer is simplified & cleaned up pdfium/samples/pdfium_test.cc
6 6
7 #include <assert.h> 7 #include <assert.h>
8 #include <limits.h> 8 #include <limits.h>
9 #include <stddef.h> 9 #include <stddef.h>
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 15 matching lines...) Expand all
26 26
27 #include "third_party/pdfium/public/fpdf_dataavail.h" 27 #include "third_party/pdfium/public/fpdf_dataavail.h"
28 #include "third_party/pdfium/public/fpdf_ext.h" 28 #include "third_party/pdfium/public/fpdf_ext.h"
29 #include "third_party/pdfium/public/fpdf_formfill.h" 29 #include "third_party/pdfium/public/fpdf_formfill.h"
30 #include "third_party/pdfium/public/fpdf_text.h" 30 #include "third_party/pdfium/public/fpdf_text.h"
31 #include "third_party/pdfium/public/fpdfview.h" 31 #include "third_party/pdfium/public/fpdfview.h"
32 #include "third_party/pdfium/testing/test_support.h" 32 #include "third_party/pdfium/testing/test_support.h"
33 33
34 #include "v8/include/v8.h" 34 #include "v8/include/v8.h"
35 35
36 static int ExampleAppAlert(IPDF_JSPLATFORM*, FPDF_WIDESTRING, FPDF_WIDESTRING, 36 static int ExampleAppAlert(IPDF_JSPLATFORM*,
37 int, int) { 37 FPDF_WIDESTRING,
38 FPDF_WIDESTRING,
39 int,
40 int) {
38 return 0; 41 return 0;
39 } 42 }
40 43
41 static void ExampleDocGotoPage(IPDF_JSPLATFORM*, int pageNumber) { } 44 static void ExampleDocGotoPage(IPDF_JSPLATFORM*, int pageNumber) {}
42 45
43 static void ExampleUnsupportedHandler(UNSUPPORT_INFO*, int type) { } 46 static void ExampleUnsupportedHandler(UNSUPPORT_INFO*, int type) {}
44
45 47
46 FPDF_BOOL Is_Data_Avail(FX_FILEAVAIL* pThis, size_t offset, size_t size) { 48 FPDF_BOOL Is_Data_Avail(FX_FILEAVAIL* pThis, size_t offset, size_t size) {
47 return true; 49 return true;
48 } 50 }
49 51
50 static void Add_Segment(FX_DOWNLOADHINTS* pThis, size_t offset, size_t size) { } 52 static void Add_Segment(FX_DOWNLOADHINTS* pThis, size_t offset, size_t size) {}
51 53
52 static bool RenderPage(const FPDF_DOCUMENT& doc, 54 static bool RenderPage(const FPDF_DOCUMENT& doc,
53 const FPDF_FORMHANDLE& form, 55 const FPDF_FORMHANDLE& form,
54 const int page_index) { 56 const int page_index) {
55 FPDF_PAGE page = FPDF_LoadPage(doc, page_index); 57 FPDF_PAGE page = FPDF_LoadPage(doc, page_index);
56 if (!page) { 58 if (!page) {
57 return false; 59 return false;
58 } 60 }
59 FPDF_TEXTPAGE text_page = FPDFText_LoadPage(page); 61 FPDF_TEXTPAGE text_page = FPDFText_LoadPage(page);
60 FORM_OnAfterLoadPage(page, form); 62 FORM_OnAfterLoadPage(page, form);
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 assert(sz > 0); 187 assert(sz > 0);
186 std::string result(path, sz); 188 std::string result(path, sz);
187 delete[] path; 189 delete[] path;
188 return result; 190 return result;
189 #endif 191 #endif
190 } 192 }
191 193
192 struct TestCase { 194 struct TestCase {
193 TestCase() { 195 TestCase() {
194 InitializeV8ForPDFium(ProgramPath(), "", &natives_blob, &snapshot_blob, 196 InitializeV8ForPDFium(ProgramPath(), "", &natives_blob, &snapshot_blob,
195 &platform); 197 &platform);
196 198
197 memset(&config, '\0', sizeof(config)); 199 memset(&config, '\0', sizeof(config));
198 config.version = 2; 200 config.version = 2;
199 config.m_pUserFontPaths = nullptr; 201 config.m_pUserFontPaths = nullptr;
200 config.m_pIsolate = nullptr; 202 config.m_pIsolate = nullptr;
201 config.m_v8EmbedderSlot = 0; 203 config.m_v8EmbedderSlot = 0;
202 FPDF_InitLibraryWithConfig(&config); 204 FPDF_InitLibraryWithConfig(&config);
203 205
204 memset(&unsupport_info, '\0', sizeof(unsupport_info)); 206 memset(&unsupport_info, '\0', sizeof(unsupport_info));
205 unsupport_info.version = 1; 207 unsupport_info.version = 1;
206 unsupport_info.FSDK_UnSupport_Handler = ExampleUnsupportedHandler; 208 unsupport_info.FSDK_UnSupport_Handler = ExampleUnsupportedHandler;
207 FSDK_SetUnSpObjProcessHandler(&unsupport_info); 209 FSDK_SetUnSpObjProcessHandler(&unsupport_info);
208 } 210 }
209 211
210 v8::Platform* platform; 212 v8::Platform* platform;
211 v8::StartupData natives_blob; 213 v8::StartupData natives_blob;
212 v8::StartupData snapshot_blob; 214 v8::StartupData snapshot_blob;
213 FPDF_LIBRARY_CONFIG config; 215 FPDF_LIBRARY_CONFIG config;
214 UNSUPPORT_INFO unsupport_info; 216 UNSUPPORT_INFO unsupport_info;
215 }; 217 };
216 218
217 static TestCase* testCase = new TestCase(); 219 static TestCase* testCase = new TestCase();
218 220
219 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { 221 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
220 RenderPdf(reinterpret_cast<const char*>(data), size); 222 RenderPdf(reinterpret_cast<const char*>(data), size);
221 return 0; 223 return 0;
222 } 224 }
OLDNEW
« no previous file with comments | « pdf/pdfium/fuzzers/dicts/pdf_xml.dict ('k') | testing/libfuzzer/fuzzers/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698