Add cc_fuzz targets for existing fuzzers
libxml2 already has its own fuzzers. Adding
targets for them to allow them to be run.
The corpus files are generated using the genSeed tool
included in libxml2/fuzz.
Note that the html fuzzer is not being enabled. It was
not building successfully.
Bug: 170243740
Test: Fuzzers build and run
Change-Id: Ie4e2638a980a5a1d2a1bc311ecf3adfe44009742
diff --git a/Android.bp b/Android.bp
index ec753a6..85bb547 100644
--- a/Android.bp
+++ b/Android.bp
@@ -155,3 +155,926 @@
],
shared_libs: ["libxml2"],
}
+
+cc_binary_host {
+ name: "libxml2_genseed",
+ srcs: [
+ "fuzz/genSeed.c",
+ "fuzz/fuzz.c",
+ ],
+ cflags: [
+ "-Wno-unused-variable",
+ ],
+ shared_libs: ["libxml2"],
+}
+
+cc_defaults {
+ name: "libxml2-fuzz-defaults",
+ host_supported: true,
+ shared_libs: [
+ "libxml2",
+ ],
+ srcs: [
+ "fuzz/fuzz.c",
+ ],
+ fuzz_config: {
+ componentid: 87896,
+ },
+}
+
+cc_fuzz {
+ name: "libxml2_regexp_fuzzer",
+ defaults: ["libxml2-fuzz-defaults"],
+ srcs: [
+ "fuzz/regexp.c",
+ ],
+ dictionary: "fuzz/regexp.dict",
+}
+
+genrule {
+ name: "libxml2_schema_fuzz_corpus",
+ tools: ["libxml2_genseed"],
+ srcs: [
+ "test/schemas",
+ ],
+ // The genseed tool only writes under its current directory.
+ // Soong does not run the tool from within the jail, so
+ // the shell must first 'cd' to the right path. However,
+ // then the location of the tool is lost, as $(location) gives
+ // a relative path.
+ cmd: "mkdir -p $(genDir)/fuzz/seed/schema && " +
+ "TOP_DIR=$$(pwd) && " +
+ "cd $(genDir)/fuzz && " +
+ "$${TOP_DIR}/$(location libxml2_genseed) schema " +
+ "$${TOP_DIR}/$(location test/schemas)/*.xsd",
+ out: [
+ "fuzz/seed/schema/570702_0.xsd",
+ "fuzz/seed/schema/579746_0.xsd",
+ "fuzz/seed/schema/579746_1.xsd",
+ "fuzz/seed/schema/582887_0.xsd",
+ "fuzz/seed/schema/582887-attribute.xsd",
+ "fuzz/seed/schema/582887-common.xsd",
+ "fuzz/seed/schema/582887-element.xsd",
+ "fuzz/seed/schema/582906-1_0.xsd",
+ "fuzz/seed/schema/582906-1-common.xsd",
+ "fuzz/seed/schema/582906-1-prog1.xsd",
+ "fuzz/seed/schema/582906-1-prog2-include.xsd",
+ "fuzz/seed/schema/582906-1-prog2.xsd",
+ "fuzz/seed/schema/582906-2_0.xsd",
+ "fuzz/seed/schema/582906-2-common.xsd",
+ "fuzz/seed/schema/582906-2-prog1.xsd",
+ "fuzz/seed/schema/582906-2-prog2-include.xsd",
+ "fuzz/seed/schema/582906-2-prog2.xsd",
+ "fuzz/seed/schema/all_0.xsd",
+ "fuzz/seed/schema/all1_0.xsd",
+ "fuzz/seed/schema/all_1.xsd",
+ "fuzz/seed/schema/all_2.xsd",
+ "fuzz/seed/schema/allsg_0.xsd",
+ "fuzz/seed/schema/all.xsd",
+ "fuzz/seed/schema/annot-err_0.xsd",
+ "fuzz/seed/schema/any1_0.xsd",
+ "fuzz/seed/schema/any2_0.xsd",
+ "fuzz/seed/schema/any3_0.xsd",
+ "fuzz/seed/schema/any4_0.xsd",
+ "fuzz/seed/schema/any5_0.xsd",
+ "fuzz/seed/schema/any5_1.xsd",
+ "fuzz/seed/schema/any6_1.xsd",
+ "fuzz/seed/schema/any6_2.xsd",
+ "fuzz/seed/schema/any7_1.xsd",
+ "fuzz/seed/schema/any7_2.xsd",
+ "fuzz/seed/schema/any8_1.xsd",
+ "fuzz/seed/schema/anyAttr1_0.xsd",
+ "fuzz/seed/schema/anyAttr-derive1_0.xsd",
+ "fuzz/seed/schema/anyAttr-derive2_0.xsd",
+ "fuzz/seed/schema/anyAttr-derive-errors1_0.xsd",
+ "fuzz/seed/schema/anyAttr.importA.1_0.xsd",
+ "fuzz/seed/schema/anyAttr.importB.1_0.xsd",
+ "fuzz/seed/schema/anyAttr-processContents1_0.xsd",
+ "fuzz/seed/schema/anyAttr-processContents-err1_0.xsd",
+ "fuzz/seed/schema/attr0_0.xsd",
+ "fuzz/seed/schema/attruse_0_0.xsd",
+ "fuzz/seed/schema/bug141312_0.xsd",
+ "fuzz/seed/schema/bug141333_0.xsd",
+ "fuzz/seed/schema/bug141333.xsd",
+ "fuzz/seed/schema/bug143951_0.xsd",
+ "fuzz/seed/schema/bug145246_0.xsd",
+ "fuzz/seed/schema/bug152470_1.xsd",
+ "fuzz/seed/schema/bug167754_0.xsd",
+ "fuzz/seed/schema/bug303566_1.xsd",
+ "fuzz/seed/schema/bug306806_1.xsd",
+ "fuzz/seed/schema/bug309338_1.xsd",
+ "fuzz/seed/schema/bug310264_0.xsd",
+ "fuzz/seed/schema/bug312957_1.xsd",
+ "fuzz/seed/schema/bug313982_0.xsd",
+ "fuzz/seed/schema/bug321475_1.xsd",
+ "fuzz/seed/schema/bug322411_1.xsd",
+ "fuzz/seed/schema/bug323510_1.xsd",
+ "fuzz/seed/schema/bug455953_0.xsd",
+ "fuzz/seed/schema/changelog093_1.xsd",
+ "fuzz/seed/schema/choice_0.xsd",
+ "fuzz/seed/schema/choice_1.xsd",
+ "fuzz/seed/schema/choice_2.xsd",
+ "fuzz/seed/schema/complex-type-extension_0.xsd",
+ "fuzz/seed/schema/cos-ct-extends-1-3_0.xsd",
+ "fuzz/seed/schema/cos-st-restricts-1-2-err_0.xsd",
+ "fuzz/seed/schema/ct-sc-nobase_0.xsd",
+ "fuzz/seed/schema/date_0.xsd",
+ "fuzz/seed/schema/decimal-1_1.xsd",
+ "fuzz/seed/schema/decimal-1.xsd",
+ "fuzz/seed/schema/decimal-2_1.xsd",
+ "fuzz/seed/schema/decimal-3_1.xsd",
+ "fuzz/seed/schema/derivation-ok-extension_0.xsd",
+ "fuzz/seed/schema/derivation-ok-extension-err_0.xsd",
+ "fuzz/seed/schema/derivation-ok-restriction-2-1-1_0.xsd",
+ "fuzz/seed/schema/derivation-ok-restriction-4-1-err_0.xsd",
+ "fuzz/seed/schema/derivation-restriction-anyAttr_0.xsd",
+ "fuzz/seed/schema/derivation-restriction-anyType.xsd",
+ "fuzz/seed/schema/deter0_0.xsd",
+ "fuzz/seed/schema/dur_0.xsd",
+ "fuzz/seed/schema/elem0_0.xsd",
+ "fuzz/seed/schema/element-err_0.xsd",
+ "fuzz/seed/schema/element-minmax-err_0.xsd",
+ "fuzz/seed/schema/empty_0.xsd",
+ "fuzz/seed/schema/empty_1.xsd",
+ "fuzz/seed/schema/empty-value_1.xsd",
+ "fuzz/seed/schema/extension0_0.xsd",
+ "fuzz/seed/schema/extension1_0.xsd",
+ "fuzz/seed/schema/extension2_1.xsd",
+ "fuzz/seed/schema/facet-unionST-err1_0.xsd",
+ "fuzz/seed/schema/facet-whiteSpace_0.xsd",
+ "fuzz/seed/schema/group0_0.xsd",
+ "fuzz/seed/schema/hexbinary_0.xsd",
+ "fuzz/seed/schema/idc-keyref-err1_1.xsd",
+ "fuzz/seed/schema/import0_0.xsd",
+ "fuzz/seed/schema/import1_0.xsd",
+ "fuzz/seed/schema/import2_0.xsd",
+ "fuzz/seed/schema/import-455953.xsd",
+ "fuzz/seed/schema/include1_0.xsd",
+ "fuzz/seed/schema/include2_0.xsd",
+ "fuzz/seed/schema/include3_0.xsd",
+ "fuzz/seed/schema/issue40_0.xsd",
+ "fuzz/seed/schema/item_0.xsd",
+ "fuzz/seed/schema/item_1.xsd",
+ "fuzz/seed/schema/length1_0.xsd",
+ "fuzz/seed/schema/length2_0.xsd",
+ "fuzz/seed/schema/length3_0.xsd",
+ "fuzz/seed/schema/list0_0.xsd",
+ "fuzz/seed/schema/list0_1.xsd",
+ "fuzz/seed/schema/mixed0_0.xsd",
+ "fuzz/seed/schema/mixed1_0.xsd",
+ "fuzz/seed/schema/ns0_0.xsd",
+ "fuzz/seed/schema/ns0_1.xsd",
+ "fuzz/seed/schema/ns1_0.xsd",
+ "fuzz/seed/schema/ns2_0.xsd",
+ "fuzz/seed/schema/nvdcve_0.xsd",
+ "fuzz/seed/schema/po0_0.xsd",
+ "fuzz/seed/schema/po1_0.xsd",
+ "fuzz/seed/schema/poschargrp0_0.xsd",
+ "fuzz/seed/schema/regexp-char-ref_0.xsd",
+ "fuzz/seed/schema/regexp-char-ref_1.xsd",
+ "fuzz/seed/schema/restrict-CT-attr-ref_0.xsd",
+ "fuzz/seed/schema/restriction0_0.xsd",
+ "fuzz/seed/schema/restriction-attr1_0.xsd",
+ "fuzz/seed/schema/restriction-enum-1_1.xsd",
+ "fuzz/seed/schema/scc-no-xmlns_0.xsd",
+ "fuzz/seed/schema/scc-no-xsi_0.xsd",
+ "fuzz/seed/schema/seq0_0.xsd",
+ "fuzz/seed/schema/seq-dubl-elem1_0.xsd",
+ "fuzz/seed/schema/src-attribute1_0.xsd",
+ "fuzz/seed/schema/src-attribute2_0.xsd",
+ "fuzz/seed/schema/src-attribute3-1_0.xsd",
+ "fuzz/seed/schema/src-attribute3-2-form_0.xsd",
+ "fuzz/seed/schema/src-attribute3-2-st_0.xsd",
+ "fuzz/seed/schema/src-attribute3-2-type_0.xsd",
+ "fuzz/seed/schema/src-attribute4_0.xsd",
+ "fuzz/seed/schema/src-element1_0.xsd",
+ "fuzz/seed/schema/src-element2-1_0.xsd",
+ "fuzz/seed/schema/src-element2-2_0.xsd",
+ "fuzz/seed/schema/src-element3_0.xsd",
+ "fuzz/seed/schema/subst-group-1_0.xsd",
+ "fuzz/seed/schema/union_0_0.xsd",
+ "fuzz/seed/schema/union2_1.xsd",
+ "fuzz/seed/schema/vdv-complexTypes.xsd",
+ "fuzz/seed/schema/vdv-first0_0.xsd",
+ "fuzz/seed/schema/vdv-first1_0.xsd",
+ "fuzz/seed/schema/vdv-first2_0.xsd",
+ "fuzz/seed/schema/vdv-first3_0.xsd",
+ "fuzz/seed/schema/vdv-first4_0.xsd",
+ "fuzz/seed/schema/vdv-first5_0.xsd",
+ "fuzz/seed/schema/vdv-simpleTypes.xsd",
+ "fuzz/seed/schema/xml.xsd",
+ "fuzz/seed/schema/xsd-list-itemType_0.xsd",
+ "fuzz/seed/schema/xsd-simpleType-varieties_0.xsd",
+ ],
+}
+
+cc_fuzz {
+ name: "libxml2_schema_fuzzer",
+ defaults: ["libxml2-fuzz-defaults"],
+ srcs: [
+ "fuzz/schema.c",
+ ],
+ dictionary: "fuzz/schema.dict",
+ corpus: [":libxml2_schema_fuzz_corpus"],
+}
+
+cc_fuzz {
+ name: "libxml2_uri_fuzzer",
+ defaults: ["libxml2-fuzz-defaults"],
+ srcs: [
+ "fuzz/uri.c",
+ ],
+}
+
+genrule {
+ name: "libxml2_xml_fuzz_corpus",
+ tools: ["libxml2_genseed"],
+ srcs: [
+ "test",
+ "test/errors",
+ "test/errors10",
+ "test/namespaces",
+ "test/valid",
+ "test/VC",
+ "test/VCM",
+ "test/XInclude/docs",
+ "test/xmlid",
+ ],
+ // The genseed tool only writes under its current directory.
+ // Soong does not run the tool from within the jail, so
+ // the shell must first 'cd' to the right path. However,
+ // then the location of the tool is lost, as $(location) gives
+ // a relative path.
+ cmd: "mkdir -p $(genDir)/fuzz/seed/xml && " +
+ "TOP_DIR=$$(pwd) && " +
+ "cd $(genDir)/fuzz && " +
+ "$${TOP_DIR}/$(location libxml2_genseed) xml " +
+ "$${TOP_DIR}/$(location test)/* " +
+ "$${TOP_DIR}/$(location test/errors)/*.xml " +
+ "$${TOP_DIR}/$(location test/errors10)/*.xml " +
+ "$${TOP_DIR}/$(location test/namespaces)/* " +
+ "$${TOP_DIR}/$(location test/valid)/*.xml " +
+ "$${TOP_DIR}/$(location test/VC)/* " +
+ "$${TOP_DIR}/$(location test/VCM)/* " +
+ "$${TOP_DIR}/$(location test/XInclude/docs)/* " +
+ "$${TOP_DIR}/$(location test/xmlid)/*",
+ out: [
+ "fuzz/seed/xml/127772.xml",
+ "fuzz/seed/xml/21.xml",
+ "fuzz/seed/xml/694228.xml",
+ "fuzz/seed/xml/737840.xml",
+ "fuzz/seed/xml/754946.xml",
+ "fuzz/seed/xml/754947.xml",
+ "fuzz/seed/xml/758588.xml",
+ "fuzz/seed/xml/759020.xml",
+ "fuzz/seed/xml/759398.xml",
+ "fuzz/seed/xml/759573-2.xml",
+ "fuzz/seed/xml/759573.xml",
+ "fuzz/seed/xml/759579.xml",
+ "fuzz/seed/xml/766956.xml",
+ "fuzz/seed/xml/781205.xml",
+ "fuzz/seed/xml/781333.xml",
+ "fuzz/seed/xml/781361.xml",
+ "fuzz/seed/xml/att1",
+ "fuzz/seed/xml/att10",
+ "fuzz/seed/xml/att11",
+ "fuzz/seed/xml/att2",
+ "fuzz/seed/xml/att3",
+ "fuzz/seed/xml/att4",
+ "fuzz/seed/xml/att5",
+ "fuzz/seed/xml/att6",
+ "fuzz/seed/xml/att7",
+ "fuzz/seed/xml/att8",
+ "fuzz/seed/xml/att9",
+ "fuzz/seed/xml/attr1.xml",
+ "fuzz/seed/xml/attr2.xml",
+ "fuzz/seed/xml/attr3.xml",
+ "fuzz/seed/xml/attr4.xml",
+ "fuzz/seed/xml/AttributeDefaultLegal",
+ "fuzz/seed/xml/AttributeNmtokens",
+ "fuzz/seed/xml/AttributeNmtokens.xml",
+ "fuzz/seed/xml/attrib.xml",
+ "fuzz/seed/xml/badcomment.xml",
+ "fuzz/seed/xml/bigentname.xml",
+ "fuzz/seed/xml/bigname2.xml",
+ "fuzz/seed/xml/bigname.xml",
+ "fuzz/seed/xml/cdata",
+ "fuzz/seed/xml/cdata2",
+ "fuzz/seed/xml/cdata-2-byte-UTF-8.xml",
+ "fuzz/seed/xml/cdata-3-byte-UTF-8.xml",
+ "fuzz/seed/xml/cdata-4-byte-UTF-8.xml",
+ "fuzz/seed/xml/cdata.xml",
+ "fuzz/seed/xml/charref1.xml",
+ "fuzz/seed/xml/comment1.xml",
+ "fuzz/seed/xml/comment2.xml",
+ "fuzz/seed/xml/comment3.xml",
+ "fuzz/seed/xml/comment4.xml",
+ "fuzz/seed/xml/comment5.xml",
+ "fuzz/seed/xml/comment6.xml",
+ "fuzz/seed/xml/comment.xml",
+ "fuzz/seed/xml/cond_sect1.xml",
+ "fuzz/seed/xml/cond_sect2.xml",
+ "fuzz/seed/xml/content1.xml",
+ "fuzz/seed/xml/dav1",
+ "fuzz/seed/xml/dav10",
+ "fuzz/seed/xml/dav11",
+ "fuzz/seed/xml/dav12",
+ "fuzz/seed/xml/dav13",
+ "fuzz/seed/xml/dav15",
+ "fuzz/seed/xml/dav16",
+ "fuzz/seed/xml/dav17",
+ "fuzz/seed/xml/dav18",
+ "fuzz/seed/xml/dav19",
+ "fuzz/seed/xml/dav2",
+ "fuzz/seed/xml/dav3",
+ "fuzz/seed/xml/dav4",
+ "fuzz/seed/xml/dav5",
+ "fuzz/seed/xml/dav6",
+ "fuzz/seed/xml/dav7",
+ "fuzz/seed/xml/dav8",
+ "fuzz/seed/xml/dav9",
+ "fuzz/seed/xml/defattr2.xml",
+ "fuzz/seed/xml/defattr.xml",
+ "fuzz/seed/xml/dia1",
+ "fuzz/seed/xml/dia2",
+ "fuzz/seed/xml/dia.xml",
+ "fuzz/seed/xml/docids.xml",
+ "fuzz/seed/xml/dtd1",
+ "fuzz/seed/xml/dtd10",
+ "fuzz/seed/xml/dtd11",
+ "fuzz/seed/xml/dtd12",
+ "fuzz/seed/xml/dtd13",
+ "fuzz/seed/xml/dtd2",
+ "fuzz/seed/xml/dtd3",
+ "fuzz/seed/xml/dtd4",
+ "fuzz/seed/xml/dtd5",
+ "fuzz/seed/xml/dtd6",
+ "fuzz/seed/xml/dtd7",
+ "fuzz/seed/xml/dtd8",
+ "fuzz/seed/xml/dtd9",
+ "fuzz/seed/xml/DuplicateType",
+ "fuzz/seed/xml/ebcdic_566012.xml",
+ "fuzz/seed/xml/ElementValid",
+ "fuzz/seed/xml/ElementValid2",
+ "fuzz/seed/xml/ElementValid3",
+ "fuzz/seed/xml/ElementValid4",
+ "fuzz/seed/xml/ElementValid5",
+ "fuzz/seed/xml/ElementValid6",
+ "fuzz/seed/xml/ElementValid7",
+ "fuzz/seed/xml/ElementValid8",
+ "fuzz/seed/xml/emptycdata.xml",
+ "fuzz/seed/xml/ent1",
+ "fuzz/seed/xml/ent10",
+ "fuzz/seed/xml/ent11",
+ "fuzz/seed/xml/ent12",
+ "fuzz/seed/xml/ent13",
+ "fuzz/seed/xml/ent2",
+ "fuzz/seed/xml/ent3",
+ "fuzz/seed/xml/ent4",
+ "fuzz/seed/xml/ent5",
+ "fuzz/seed/xml/ent6",
+ "fuzz/seed/xml/ent7",
+ "fuzz/seed/xml/ent_738805.xml",
+ "fuzz/seed/xml/ent8",
+ "fuzz/seed/xml/ent9",
+ "fuzz/seed/xml/Enumeration",
+ "fuzz/seed/xml/err_0.xml",
+ "fuzz/seed/xml/err_10.xml",
+ "fuzz/seed/xml/err_11.xml",
+ "fuzz/seed/xml/err_1.xml",
+ "fuzz/seed/xml/err_2.xml",
+ "fuzz/seed/xml/err_3.xml",
+ "fuzz/seed/xml/err_4.xml",
+ "fuzz/seed/xml/err_5.xml",
+ "fuzz/seed/xml/err_6.xml",
+ "fuzz/seed/xml/err_7.xml",
+ "fuzz/seed/xml/err_8.xml",
+ "fuzz/seed/xml/err_9.xml",
+ "fuzz/seed/xml/eve.xml",
+ "fuzz/seed/xml/extparsedent.xml",
+ "fuzz/seed/xml/fallback2.xml",
+ "fuzz/seed/xml/fallback3.xml",
+ "fuzz/seed/xml/fallback4.xml",
+ "fuzz/seed/xml/fallback5.xml",
+ "fuzz/seed/xml/fallback6.xml",
+ "fuzz/seed/xml/fallback.xml",
+ "fuzz/seed/xml/icu_parse_test.xml",
+ "fuzz/seed/xml/id1.xml",
+ "fuzz/seed/xml/id2.xml",
+ "fuzz/seed/xml/id3.xml",
+ "fuzz/seed/xml/id_err1.xml",
+ "fuzz/seed/xml/id_err2.xml",
+ "fuzz/seed/xml/id_tst1.xml",
+ "fuzz/seed/xml/id_tst2.xml",
+ "fuzz/seed/xml/id_tst3.xml",
+ "fuzz/seed/xml/id_tst4.xml",
+ "fuzz/seed/xml/include.xml",
+ "fuzz/seed/xml/index.xml",
+ "fuzz/seed/xml/intsubset2.xml",
+ "fuzz/seed/xml/intsubset.xml",
+ "fuzz/seed/xml/isolat1",
+ "fuzz/seed/xml/isolat2",
+ "fuzz/seed/xml/isolat3",
+ "fuzz/seed/xml/japancrlf.xml",
+ "fuzz/seed/xml/mixed_ns.xml",
+ "fuzz/seed/xml/name2.xml",
+ "fuzz/seed/xml/name.xml",
+ "fuzz/seed/xml/nodes2.xml",
+ "fuzz/seed/xml/nodes3.xml",
+ "fuzz/seed/xml/nodes.xml",
+ "fuzz/seed/xml/notes.xml",
+ "fuzz/seed/xml/ns",
+ "fuzz/seed/xml/NS1",
+ "fuzz/seed/xml/ns1.xml",
+ "fuzz/seed/xml/ns2",
+ "fuzz/seed/xml/NS2",
+ "fuzz/seed/xml/ns2.xml",
+ "fuzz/seed/xml/ns3",
+ "fuzz/seed/xml/NS3",
+ "fuzz/seed/xml/ns4",
+ "fuzz/seed/xml/ns5",
+ "fuzz/seed/xml/ns6",
+ "fuzz/seed/xml/ns7",
+ "fuzz/seed/xml/nsclean.xml",
+ "fuzz/seed/xml/ns.xml",
+ "fuzz/seed/xml/objednavka.xml",
+ "fuzz/seed/xml/OneID",
+ "fuzz/seed/xml/OneID2",
+ "fuzz/seed/xml/OneID3",
+ "fuzz/seed/xml/p3p",
+ "fuzz/seed/xml/PENesting",
+ "fuzz/seed/xml/PENesting2",
+ "fuzz/seed/xml/pi2.xml",
+ "fuzz/seed/xml/pi.xml",
+ "fuzz/seed/xml/rdf1",
+ "fuzz/seed/xml/rdf2",
+ "fuzz/seed/xml/rec_ext_ent.xml",
+ "fuzz/seed/xml/recursive.xml",
+ "fuzz/seed/xml/REC-xml-19980210.xml",
+ "fuzz/seed/xml/rss.xml",
+ "fuzz/seed/xml/slashdot16.xml",
+ "fuzz/seed/xml/slashdot.rdf",
+ "fuzz/seed/xml/slashdot.xml",
+ "fuzz/seed/xml/svg1",
+ "fuzz/seed/xml/svg2",
+ "fuzz/seed/xml/svg3",
+ "fuzz/seed/xml/t10.xml",
+ "fuzz/seed/xml/t11.xml",
+ "fuzz/seed/xml/t4a.xml",
+ "fuzz/seed/xml/t4.xml",
+ "fuzz/seed/xml/t6.xml",
+ "fuzz/seed/xml/t8a.xml",
+ "fuzz/seed/xml/t8.xml",
+ "fuzz/seed/xml/t9a.xml",
+ "fuzz/seed/xml/t9.xml",
+ "fuzz/seed/xml/title.xml",
+ "fuzz/seed/xml/tstblanks.xml",
+ "fuzz/seed/xml/tstencoding.xml",
+ "fuzz/seed/xml/txtinclude.xml",
+ "fuzz/seed/xml/UniqueElementTypeDeclaration",
+ "fuzz/seed/xml/UniqueElementTypeDeclaration2",
+ "fuzz/seed/xml/utf16bebom.xml",
+ "fuzz/seed/xml/utf16bom.xml",
+ "fuzz/seed/xml/UTF16Entity.xml",
+ "fuzz/seed/xml/utf16lebom.xml",
+ "fuzz/seed/xml/utf8bom.xml",
+ "fuzz/seed/xml/v10.xml",
+ "fuzz/seed/xml/v11.xml",
+ "fuzz/seed/xml/v12.xml",
+ "fuzz/seed/xml/v13.xml",
+ "fuzz/seed/xml/v14.xml",
+ "fuzz/seed/xml/v15.xml",
+ "fuzz/seed/xml/v16.xml",
+ "fuzz/seed/xml/v17.xml",
+ "fuzz/seed/xml/v18.xml",
+ "fuzz/seed/xml/v19.xml",
+ "fuzz/seed/xml/v1.xml",
+ "fuzz/seed/xml/v20.xml",
+ "fuzz/seed/xml/v21.xml",
+ "fuzz/seed/xml/v22.xml",
+ "fuzz/seed/xml/v23.xml",
+ "fuzz/seed/xml/v24.xml",
+ "fuzz/seed/xml/v2.xml",
+ "fuzz/seed/xml/v3.xml",
+ "fuzz/seed/xml/v4.xml",
+ "fuzz/seed/xml/v5.xml",
+ "fuzz/seed/xml/v6.xml",
+ "fuzz/seed/xml/v7.xml",
+ "fuzz/seed/xml/v8.xml",
+ "fuzz/seed/xml/v9.xml",
+ "fuzz/seed/xml/wap.xml",
+ "fuzz/seed/xml/winblanks.xml",
+ "fuzz/seed/xml/wml.xml",
+ "fuzz/seed/xml/xhtml1",
+ "fuzz/seed/xml/xhtmlcomp",
+ "fuzz/seed/xml/xlink.xml",
+ "fuzz/seed/xml/xml1",
+ "fuzz/seed/xml/xml2",
+ ],
+}
+
+cc_fuzz {
+ name: "libxml2_xml_fuzzer",
+ defaults: ["libxml2-fuzz-defaults"],
+ srcs: [
+ "fuzz/xml.c",
+ ],
+ dictionary: "fuzz/xml.dict",
+ corpus: [":libxml2_xml_fuzz_corpus"],
+}
+
+genrule {
+ name: "libxml2_xpath_fuzz_corpus",
+ tools: ["libxml2_genseed"],
+ srcs: [
+ "test/XPath",
+ ],
+ // The genseed tool only writes under its current directory.
+ // Soong does not run the tool from within the jail, so
+ // the shell must first 'cd' to the right path. However,
+ // then the location of the tool is lost, as $(location) gives
+ // a relative path.
+ cmd: "mkdir -p $(genDir)/fuzz/seed/xpath && " +
+ "TOP_DIR=$$(pwd) && " +
+ "cd $(genDir)/fuzz && " +
+ "$${TOP_DIR}/$(location libxml2_genseed) xpath " +
+ "$${TOP_DIR}/$(location test/XPath)",
+ out: [
+ "fuzz/seed/xpath/chapters-1",
+ "fuzz/seed/xpath/chapters-10",
+ "fuzz/seed/xpath/chapters-11",
+ "fuzz/seed/xpath/chapters-12",
+ "fuzz/seed/xpath/chapters-13",
+ "fuzz/seed/xpath/chapters-14",
+ "fuzz/seed/xpath/chapters-15",
+ "fuzz/seed/xpath/chapters-16",
+ "fuzz/seed/xpath/chapters-17",
+ "fuzz/seed/xpath/chapters-18",
+ "fuzz/seed/xpath/chapters-19",
+ "fuzz/seed/xpath/chapters-2",
+ "fuzz/seed/xpath/chapters-20",
+ "fuzz/seed/xpath/chapters-21",
+ "fuzz/seed/xpath/chapters-22",
+ "fuzz/seed/xpath/chapters-23",
+ "fuzz/seed/xpath/chapters-24",
+ "fuzz/seed/xpath/chapters-25",
+ "fuzz/seed/xpath/chapters-26",
+ "fuzz/seed/xpath/chapters-27",
+ "fuzz/seed/xpath/chapters-28",
+ "fuzz/seed/xpath/chapters-29",
+ "fuzz/seed/xpath/chapters-3",
+ "fuzz/seed/xpath/chapters-30",
+ "fuzz/seed/xpath/chapters-31",
+ "fuzz/seed/xpath/chapters-32",
+ "fuzz/seed/xpath/chapters-33",
+ "fuzz/seed/xpath/chapters-34",
+ "fuzz/seed/xpath/chapters-35",
+ "fuzz/seed/xpath/chapters-36",
+ "fuzz/seed/xpath/chapters-37",
+ "fuzz/seed/xpath/chapters-38",
+ "fuzz/seed/xpath/chapters-39",
+ "fuzz/seed/xpath/chapters-4",
+ "fuzz/seed/xpath/chapters-40",
+ "fuzz/seed/xpath/chapters-41",
+ "fuzz/seed/xpath/chapters-42",
+ "fuzz/seed/xpath/chapters-43",
+ "fuzz/seed/xpath/chapters-5",
+ "fuzz/seed/xpath/chapters-6",
+ "fuzz/seed/xpath/chapters-7",
+ "fuzz/seed/xpath/chapters-8",
+ "fuzz/seed/xpath/chapters-9",
+ "fuzz/seed/xpath/expr-1",
+ "fuzz/seed/xpath/expr-10",
+ "fuzz/seed/xpath/expr-100",
+ "fuzz/seed/xpath/expr-101",
+ "fuzz/seed/xpath/expr-102",
+ "fuzz/seed/xpath/expr-103",
+ "fuzz/seed/xpath/expr-104",
+ "fuzz/seed/xpath/expr-105",
+ "fuzz/seed/xpath/expr-106",
+ "fuzz/seed/xpath/expr-107",
+ "fuzz/seed/xpath/expr-108",
+ "fuzz/seed/xpath/expr-109",
+ "fuzz/seed/xpath/expr-11",
+ "fuzz/seed/xpath/expr-110",
+ "fuzz/seed/xpath/expr-111",
+ "fuzz/seed/xpath/expr-112",
+ "fuzz/seed/xpath/expr-113",
+ "fuzz/seed/xpath/expr-114",
+ "fuzz/seed/xpath/expr-115",
+ "fuzz/seed/xpath/expr-116",
+ "fuzz/seed/xpath/expr-117",
+ "fuzz/seed/xpath/expr-118",
+ "fuzz/seed/xpath/expr-119",
+ "fuzz/seed/xpath/expr-12",
+ "fuzz/seed/xpath/expr-120",
+ "fuzz/seed/xpath/expr-121",
+ "fuzz/seed/xpath/expr-122",
+ "fuzz/seed/xpath/expr-123",
+ "fuzz/seed/xpath/expr-124",
+ "fuzz/seed/xpath/expr-125",
+ "fuzz/seed/xpath/expr-126",
+ "fuzz/seed/xpath/expr-127",
+ "fuzz/seed/xpath/expr-128",
+ "fuzz/seed/xpath/expr-129",
+ "fuzz/seed/xpath/expr-13",
+ "fuzz/seed/xpath/expr-130",
+ "fuzz/seed/xpath/expr-131",
+ "fuzz/seed/xpath/expr-132",
+ "fuzz/seed/xpath/expr-133",
+ "fuzz/seed/xpath/expr-134",
+ "fuzz/seed/xpath/expr-135",
+ "fuzz/seed/xpath/expr-136",
+ "fuzz/seed/xpath/expr-137",
+ "fuzz/seed/xpath/expr-138",
+ "fuzz/seed/xpath/expr-139",
+ "fuzz/seed/xpath/expr-14",
+ "fuzz/seed/xpath/expr-140",
+ "fuzz/seed/xpath/expr-141",
+ "fuzz/seed/xpath/expr-142",
+ "fuzz/seed/xpath/expr-143",
+ "fuzz/seed/xpath/expr-144",
+ "fuzz/seed/xpath/expr-145",
+ "fuzz/seed/xpath/expr-146",
+ "fuzz/seed/xpath/expr-147",
+ "fuzz/seed/xpath/expr-148",
+ "fuzz/seed/xpath/expr-149",
+ "fuzz/seed/xpath/expr-15",
+ "fuzz/seed/xpath/expr-150",
+ "fuzz/seed/xpath/expr-151",
+ "fuzz/seed/xpath/expr-152",
+ "fuzz/seed/xpath/expr-153",
+ "fuzz/seed/xpath/expr-154",
+ "fuzz/seed/xpath/expr-155",
+ "fuzz/seed/xpath/expr-156",
+ "fuzz/seed/xpath/expr-157",
+ "fuzz/seed/xpath/expr-158",
+ "fuzz/seed/xpath/expr-159",
+ "fuzz/seed/xpath/expr-16",
+ "fuzz/seed/xpath/expr-160",
+ "fuzz/seed/xpath/expr-161",
+ "fuzz/seed/xpath/expr-162",
+ "fuzz/seed/xpath/expr-163",
+ "fuzz/seed/xpath/expr-164",
+ "fuzz/seed/xpath/expr-165",
+ "fuzz/seed/xpath/expr-166",
+ "fuzz/seed/xpath/expr-167",
+ "fuzz/seed/xpath/expr-168",
+ "fuzz/seed/xpath/expr-169",
+ "fuzz/seed/xpath/expr-17",
+ "fuzz/seed/xpath/expr-170",
+ "fuzz/seed/xpath/expr-171",
+ "fuzz/seed/xpath/expr-172",
+ "fuzz/seed/xpath/expr-173",
+ "fuzz/seed/xpath/expr-174",
+ "fuzz/seed/xpath/expr-175",
+ "fuzz/seed/xpath/expr-176",
+ "fuzz/seed/xpath/expr-177",
+ "fuzz/seed/xpath/expr-178",
+ "fuzz/seed/xpath/expr-179",
+ "fuzz/seed/xpath/expr-18",
+ "fuzz/seed/xpath/expr-180",
+ "fuzz/seed/xpath/expr-181",
+ "fuzz/seed/xpath/expr-182",
+ "fuzz/seed/xpath/expr-183",
+ "fuzz/seed/xpath/expr-184",
+ "fuzz/seed/xpath/expr-185",
+ "fuzz/seed/xpath/expr-186",
+ "fuzz/seed/xpath/expr-187",
+ "fuzz/seed/xpath/expr-188",
+ "fuzz/seed/xpath/expr-189",
+ "fuzz/seed/xpath/expr-19",
+ "fuzz/seed/xpath/expr-190",
+ "fuzz/seed/xpath/expr-191",
+ "fuzz/seed/xpath/expr-192",
+ "fuzz/seed/xpath/expr-193",
+ "fuzz/seed/xpath/expr-194",
+ "fuzz/seed/xpath/expr-195",
+ "fuzz/seed/xpath/expr-196",
+ "fuzz/seed/xpath/expr-197",
+ "fuzz/seed/xpath/expr-198",
+ "fuzz/seed/xpath/expr-199",
+ "fuzz/seed/xpath/expr-2",
+ "fuzz/seed/xpath/expr-20",
+ "fuzz/seed/xpath/expr-200",
+ "fuzz/seed/xpath/expr-201",
+ "fuzz/seed/xpath/expr-202",
+ "fuzz/seed/xpath/expr-203",
+ "fuzz/seed/xpath/expr-204",
+ "fuzz/seed/xpath/expr-205",
+ "fuzz/seed/xpath/expr-206",
+ "fuzz/seed/xpath/expr-207",
+ "fuzz/seed/xpath/expr-208",
+ "fuzz/seed/xpath/expr-209",
+ "fuzz/seed/xpath/expr-21",
+ "fuzz/seed/xpath/expr-210",
+ "fuzz/seed/xpath/expr-211",
+ "fuzz/seed/xpath/expr-212",
+ "fuzz/seed/xpath/expr-213",
+ "fuzz/seed/xpath/expr-214",
+ "fuzz/seed/xpath/expr-215",
+ "fuzz/seed/xpath/expr-216",
+ "fuzz/seed/xpath/expr-217",
+ "fuzz/seed/xpath/expr-218",
+ "fuzz/seed/xpath/expr-219",
+ "fuzz/seed/xpath/expr-22",
+ "fuzz/seed/xpath/expr-220",
+ "fuzz/seed/xpath/expr-221",
+ "fuzz/seed/xpath/expr-222",
+ "fuzz/seed/xpath/expr-223",
+ "fuzz/seed/xpath/expr-224",
+ "fuzz/seed/xpath/expr-225",
+ "fuzz/seed/xpath/expr-226",
+ "fuzz/seed/xpath/expr-227",
+ "fuzz/seed/xpath/expr-228",
+ "fuzz/seed/xpath/expr-229",
+ "fuzz/seed/xpath/expr-23",
+ "fuzz/seed/xpath/expr-230",
+ "fuzz/seed/xpath/expr-231",
+ "fuzz/seed/xpath/expr-232",
+ "fuzz/seed/xpath/expr-24",
+ "fuzz/seed/xpath/expr-25",
+ "fuzz/seed/xpath/expr-26",
+ "fuzz/seed/xpath/expr-27",
+ "fuzz/seed/xpath/expr-28",
+ "fuzz/seed/xpath/expr-29",
+ "fuzz/seed/xpath/expr-3",
+ "fuzz/seed/xpath/expr-30",
+ "fuzz/seed/xpath/expr-31",
+ "fuzz/seed/xpath/expr-32",
+ "fuzz/seed/xpath/expr-33",
+ "fuzz/seed/xpath/expr-34",
+ "fuzz/seed/xpath/expr-35",
+ "fuzz/seed/xpath/expr-36",
+ "fuzz/seed/xpath/expr-37",
+ "fuzz/seed/xpath/expr-38",
+ "fuzz/seed/xpath/expr-39",
+ "fuzz/seed/xpath/expr-4",
+ "fuzz/seed/xpath/expr-40",
+ "fuzz/seed/xpath/expr-41",
+ "fuzz/seed/xpath/expr-42",
+ "fuzz/seed/xpath/expr-43",
+ "fuzz/seed/xpath/expr-44",
+ "fuzz/seed/xpath/expr-45",
+ "fuzz/seed/xpath/expr-46",
+ "fuzz/seed/xpath/expr-47",
+ "fuzz/seed/xpath/expr-48",
+ "fuzz/seed/xpath/expr-49",
+ "fuzz/seed/xpath/expr-5",
+ "fuzz/seed/xpath/expr-50",
+ "fuzz/seed/xpath/expr-51",
+ "fuzz/seed/xpath/expr-52",
+ "fuzz/seed/xpath/expr-53",
+ "fuzz/seed/xpath/expr-54",
+ "fuzz/seed/xpath/expr-55",
+ "fuzz/seed/xpath/expr-56",
+ "fuzz/seed/xpath/expr-57",
+ "fuzz/seed/xpath/expr-58",
+ "fuzz/seed/xpath/expr-59",
+ "fuzz/seed/xpath/expr-6",
+ "fuzz/seed/xpath/expr-60",
+ "fuzz/seed/xpath/expr-61",
+ "fuzz/seed/xpath/expr-62",
+ "fuzz/seed/xpath/expr-63",
+ "fuzz/seed/xpath/expr-64",
+ "fuzz/seed/xpath/expr-65",
+ "fuzz/seed/xpath/expr-66",
+ "fuzz/seed/xpath/expr-67",
+ "fuzz/seed/xpath/expr-68",
+ "fuzz/seed/xpath/expr-69",
+ "fuzz/seed/xpath/expr-7",
+ "fuzz/seed/xpath/expr-70",
+ "fuzz/seed/xpath/expr-71",
+ "fuzz/seed/xpath/expr-72",
+ "fuzz/seed/xpath/expr-73",
+ "fuzz/seed/xpath/expr-74",
+ "fuzz/seed/xpath/expr-75",
+ "fuzz/seed/xpath/expr-76",
+ "fuzz/seed/xpath/expr-77",
+ "fuzz/seed/xpath/expr-78",
+ "fuzz/seed/xpath/expr-79",
+ "fuzz/seed/xpath/expr-8",
+ "fuzz/seed/xpath/expr-80",
+ "fuzz/seed/xpath/expr-81",
+ "fuzz/seed/xpath/expr-82",
+ "fuzz/seed/xpath/expr-83",
+ "fuzz/seed/xpath/expr-84",
+ "fuzz/seed/xpath/expr-85",
+ "fuzz/seed/xpath/expr-86",
+ "fuzz/seed/xpath/expr-87",
+ "fuzz/seed/xpath/expr-88",
+ "fuzz/seed/xpath/expr-89",
+ "fuzz/seed/xpath/expr-9",
+ "fuzz/seed/xpath/expr-90",
+ "fuzz/seed/xpath/expr-91",
+ "fuzz/seed/xpath/expr-92",
+ "fuzz/seed/xpath/expr-93",
+ "fuzz/seed/xpath/expr-94",
+ "fuzz/seed/xpath/expr-95",
+ "fuzz/seed/xpath/expr-96",
+ "fuzz/seed/xpath/expr-97",
+ "fuzz/seed/xpath/expr-98",
+ "fuzz/seed/xpath/expr-99",
+ "fuzz/seed/xpath/id-1",
+ "fuzz/seed/xpath/id-2",
+ "fuzz/seed/xpath/id-3",
+ "fuzz/seed/xpath/lang-1",
+ "fuzz/seed/xpath/lang-2",
+ "fuzz/seed/xpath/lang-3",
+ "fuzz/seed/xpath/lang-4",
+ "fuzz/seed/xpath/lang-5",
+ "fuzz/seed/xpath/mixed-1",
+ "fuzz/seed/xpath/mixed-2",
+ "fuzz/seed/xpath/mixed-3",
+ "fuzz/seed/xpath/mixed-4",
+ "fuzz/seed/xpath/mixed-5",
+ "fuzz/seed/xpath/mixed-6",
+ "fuzz/seed/xpath/mixed-7",
+ "fuzz/seed/xpath/nodes-1",
+ "fuzz/seed/xpath/nodes-2",
+ "fuzz/seed/xpath/nodes-3",
+ "fuzz/seed/xpath/nodes-4",
+ "fuzz/seed/xpath/nodes-5",
+ "fuzz/seed/xpath/ns-1",
+ "fuzz/seed/xpath/ns-2",
+ "fuzz/seed/xpath/ns-3",
+ "fuzz/seed/xpath/ns-4",
+ "fuzz/seed/xpath/ns-5",
+ "fuzz/seed/xpath/simple-1",
+ "fuzz/seed/xpath/simple-10",
+ "fuzz/seed/xpath/simple-11",
+ "fuzz/seed/xpath/simple-12",
+ "fuzz/seed/xpath/simple-13",
+ "fuzz/seed/xpath/simple-14",
+ "fuzz/seed/xpath/simple-15",
+ "fuzz/seed/xpath/simple-16",
+ "fuzz/seed/xpath/simple-17",
+ "fuzz/seed/xpath/simple-18",
+ "fuzz/seed/xpath/simple-19",
+ "fuzz/seed/xpath/simple-2",
+ "fuzz/seed/xpath/simple-20",
+ "fuzz/seed/xpath/simple-21",
+ "fuzz/seed/xpath/simple-22",
+ "fuzz/seed/xpath/simple-23",
+ "fuzz/seed/xpath/simple-24",
+ "fuzz/seed/xpath/simple-25",
+ "fuzz/seed/xpath/simple-26",
+ "fuzz/seed/xpath/simple-3",
+ "fuzz/seed/xpath/simple-4",
+ "fuzz/seed/xpath/simple-5",
+ "fuzz/seed/xpath/simple-6",
+ "fuzz/seed/xpath/simple-7",
+ "fuzz/seed/xpath/simple-8",
+ "fuzz/seed/xpath/simple-9",
+ "fuzz/seed/xpath/str-1",
+ "fuzz/seed/xpath/str-10",
+ "fuzz/seed/xpath/str-11",
+ "fuzz/seed/xpath/str-12",
+ "fuzz/seed/xpath/str-13",
+ "fuzz/seed/xpath/str-14",
+ "fuzz/seed/xpath/str-15",
+ "fuzz/seed/xpath/str-16",
+ "fuzz/seed/xpath/str-17",
+ "fuzz/seed/xpath/str-18",
+ "fuzz/seed/xpath/str-19",
+ "fuzz/seed/xpath/str-2",
+ "fuzz/seed/xpath/str-20",
+ "fuzz/seed/xpath/str-21",
+ "fuzz/seed/xpath/str-22",
+ "fuzz/seed/xpath/str-23",
+ "fuzz/seed/xpath/str-3",
+ "fuzz/seed/xpath/str-4",
+ "fuzz/seed/xpath/str-5",
+ "fuzz/seed/xpath/str-6",
+ "fuzz/seed/xpath/str-7",
+ "fuzz/seed/xpath/str-8",
+ "fuzz/seed/xpath/str-9",
+ "fuzz/seed/xpath/usr1-1",
+ "fuzz/seed/xpath/vid-1",
+ "fuzz/seed/xpath/vid-10",
+ "fuzz/seed/xpath/vid-11",
+ "fuzz/seed/xpath/vid-12",
+ "fuzz/seed/xpath/vid-13",
+ "fuzz/seed/xpath/vid-14",
+ "fuzz/seed/xpath/vid-15",
+ "fuzz/seed/xpath/vid-16",
+ "fuzz/seed/xpath/vid-2",
+ "fuzz/seed/xpath/vid-3",
+ "fuzz/seed/xpath/vid-4",
+ "fuzz/seed/xpath/vid-5",
+ "fuzz/seed/xpath/vid-6",
+ "fuzz/seed/xpath/vid-7",
+ "fuzz/seed/xpath/vid-8",
+ "fuzz/seed/xpath/vid-9",
+ ],
+}
+
+cc_fuzz {
+ name: "libxml2_xpath_fuzzer",
+ defaults: ["libxml2-fuzz-defaults"],
+ srcs: [
+ "fuzz/xpath.c",
+ ],
+ dictionary: "fuzz/xpath.dict",
+ corpus: [":libxml2_xpath_fuzz_corpus"],
+}