1 # Copyright 2016 The PDFium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 import("../../pdfium.gni") 6 7 config("libfuzzer_config") { 8 configs = [ "../..:pdfium_core_config" ] 9 10 defines = [ 11 "PNG_PREFIX", 12 "PNG_USE_READ_MACROS", 13 ] 14 include_dirs = [ "../.." ] 15 if (pdf_enable_v8) { 16 defines += [ "PDF_ENABLE_V8" ] 17 } 18 if (pdf_enable_xfa) { 19 defines += [ "PDF_ENABLE_XFA" ] 20 } 21 } 22 23 group("libfuzzer") { 24 testonly = true 25 deps = [ 26 ":pdf_cmap_fuzzer", 27 ":pdf_codec_a85_fuzzer", 28 ":pdf_codec_fax_fuzzer", 29 ":pdf_codec_icc_fuzzer", 30 ":pdf_codec_jbig2_fuzzer", 31 ":pdf_codec_rle_fuzzer", 32 ":pdf_font_fuzzer", 33 ":pdf_hint_table_fuzzer", 34 ":pdf_jpx_fuzzer", 35 ":pdf_psengine_fuzzer", 36 ":pdf_streamparser_fuzzer", 37 ] 38 if (pdf_enable_xfa) { 39 deps += [ 40 ":pdf_cfx_barcode_fuzzer", 41 ":pdf_cfx_saxreader_fuzzer", 42 ":pdf_codec_bmp_fuzzer", 43 ":pdf_codec_gif_fuzzer", 44 ":pdf_codec_jpeg_fuzzer", 45 ":pdf_codec_png_fuzzer", 46 ":pdf_codec_tiff_fuzzer", 47 ":pdf_css_fuzzer", 48 ":pdf_fm2js_fuzzer", 49 ":pdf_formcalc_fuzzer", 50 ":pdf_lzw_fuzzer", 51 ":pdf_xml_fuzzer", 52 ] 53 } 54 } 55 56 template("pdfium_fuzzer") { 57 source_set(target_name) { 58 sources = invoker.sources + [ "pdf_fuzzer_init.cc" ] 59 deps = [ 60 "../..:pdfium", 61 ] 62 if (defined(invoker.deps)) { 63 deps += invoker.deps 64 } 65 testonly = true 66 configs -= [ "//build/config/compiler:chromium_code" ] 67 configs += [ 68 "//build/config/compiler:no_chromium_code", 69 ":libfuzzer_config", 70 ] 71 } 72 } 73 74 if (pdf_enable_xfa) { 75 pdfium_fuzzer("pdf_cfx_barcode_fuzzer") { 76 sources = [ 77 "pdf_cfx_barcode_fuzzer.cc", 78 ] 79 } 80 81 pdfium_fuzzer("pdf_cfx_saxreader_fuzzer") { 82 sources = [ 83 "pdf_cfx_saxreader_fuzzer.cc", 84 ] 85 } 86 87 pdfium_fuzzer("pdf_codec_bmp_fuzzer") { 88 sources = [ 89 "pdf_codec_bmp_fuzzer.cc", 90 "xfa_codec_fuzzer.h", 91 ] 92 } 93 94 pdfium_fuzzer("pdf_codec_gif_fuzzer") { 95 sources = [ 96 "pdf_codec_gif_fuzzer.cc", 97 "xfa_codec_fuzzer.h", 98 ] 99 } 100 101 pdfium_fuzzer("pdf_codec_jpeg_fuzzer") { 102 sources = [ 103 "pdf_codec_jpeg_fuzzer.cc", 104 "xfa_codec_fuzzer.h", 105 ] 106 } 107 108 pdfium_fuzzer("pdf_codec_png_fuzzer") { 109 sources = [ 110 "pdf_codec_png_fuzzer.cc", 111 "xfa_codec_fuzzer.h", 112 ] 113 } 114 115 pdfium_fuzzer("pdf_codec_tiff_fuzzer") { 116 sources = [ 117 "pdf_codec_tiff_fuzzer.cc", 118 "xfa_codec_fuzzer.h", 119 ] 120 } 121 122 pdfium_fuzzer("pdf_css_fuzzer") { 123 sources = [ 124 "pdf_css_fuzzer.cc", 125 ] 126 } 127 128 pdfium_fuzzer("pdf_fm2js_fuzzer") { 129 sources = [ 130 "pdf_fm2js_fuzzer.cc", 131 ] 132 } 133 134 pdfium_fuzzer("pdf_formcalc_fuzzer") { 135 sources = [ 136 "pdf_formcalc_fuzzer.cc", 137 ] 138 } 139 140 pdfium_fuzzer("pdf_lzw_fuzzer") { 141 sources = [ 142 "pdf_lzw_fuzzer.cc", 143 ] 144 } 145 146 pdfium_fuzzer("pdf_xml_fuzzer") { 147 sources = [ 148 "pdf_xml_fuzzer.cc", 149 ] 150 } 151 } 152 153 pdfium_fuzzer("pdf_cmap_fuzzer") { 154 sources = [ 155 "pdf_cmap_fuzzer.cc", 156 ] 157 } 158 159 pdfium_fuzzer("pdf_codec_a85_fuzzer") { 160 sources = [ 161 "pdf_codec_a85_fuzzer.cc", 162 ] 163 } 164 165 pdfium_fuzzer("pdf_codec_fax_fuzzer") { 166 sources = [ 167 "pdf_codec_fax_fuzzer.cc", 168 ] 169 } 170 171 pdfium_fuzzer("pdf_codec_icc_fuzzer") { 172 deps = [ 173 "../../third_party/:lcms2", 174 ] 175 sources = [ 176 "pdf_codec_icc_fuzzer.cc", 177 ] 178 } 179 180 pdfium_fuzzer("pdf_codec_jbig2_fuzzer") { 181 sources = [ 182 "pdf_codec_jbig2_fuzzer.cc", 183 ] 184 } 185 186 pdfium_fuzzer("pdf_codec_rle_fuzzer") { 187 sources = [ 188 "pdf_codec_rle_fuzzer.cc", 189 ] 190 } 191 192 pdfium_fuzzer("pdf_font_fuzzer") { 193 sources = [ 194 "pdf_font_fuzzer.cc", 195 ] 196 } 197 198 pdfium_fuzzer("pdf_hint_table_fuzzer") { 199 sources = [ 200 "pdf_hint_table_fuzzer.cc", 201 ] 202 } 203 204 pdfium_fuzzer("pdf_jpx_fuzzer") { 205 sources = [ 206 "pdf_jpx_fuzzer.cc", 207 ] 208 } 209 210 pdfium_fuzzer("pdf_psengine_fuzzer") { 211 sources = [ 212 "pdf_psengine_fuzzer.cc", 213 ] 214 } 215 216 pdfium_fuzzer("pdf_streamparser_fuzzer") { 217 sources = [ 218 "pdf_streamparser_fuzzer.cc", 219 ] 220 } 221