xref: /aosp_15_r20/tools/security/fuzzing/xmt_parser_fuzzer/Fuzzer.java (revision d9ecfb0f4d734c9ce41cde8ac4d585b094fd4222)
1*d9ecfb0fSAndroid Build Coastguard Worker import com.code_intelligence.jazzer.api.FuzzedDataProvider;
2*d9ecfb0fSAndroid Build Coastguard Worker import com.adobe.xmp.impl.XMPMetaParser;
3*d9ecfb0fSAndroid Build Coastguard Worker import com.adobe.xmp.options.ParseOptions;
4*d9ecfb0fSAndroid Build Coastguard Worker import com.adobe.xmp.XMPException;
5*d9ecfb0fSAndroid Build Coastguard Worker 
6*d9ecfb0fSAndroid Build Coastguard Worker public class Fuzzer {
7*d9ecfb0fSAndroid Build Coastguard Worker 
fuzzerTestOneInput(FuzzedDataProvider data)8*d9ecfb0fSAndroid Build Coastguard Worker   public static void fuzzerTestOneInput(FuzzedDataProvider data) {
9*d9ecfb0fSAndroid Build Coastguard Worker     ParseOptions parseOptions = new ParseOptions();
10*d9ecfb0fSAndroid Build Coastguard Worker     parseOptions.setAcceptLatin1(data.consumeBoolean()) ;
11*d9ecfb0fSAndroid Build Coastguard Worker     parseOptions.setFixControlChars(data.consumeBoolean()) ;
12*d9ecfb0fSAndroid Build Coastguard Worker     parseOptions.setRequireXMPMeta(data.consumeBoolean()) ;
13*d9ecfb0fSAndroid Build Coastguard Worker     parseOptions.setStrictAliasing(data.consumeBoolean()) ;
14*d9ecfb0fSAndroid Build Coastguard Worker     String input = data.consumeRemainingAsString();
15*d9ecfb0fSAndroid Build Coastguard Worker     try {
16*d9ecfb0fSAndroid Build Coastguard Worker       XMPMetaParser.parse(input, parseOptions);
17*d9ecfb0fSAndroid Build Coastguard Worker     } catch(XMPException e) {
18*d9ecfb0fSAndroid Build Coastguard Worker       // Do nothing
19*d9ecfb0fSAndroid Build Coastguard Worker     }
20*d9ecfb0fSAndroid Build Coastguard Worker   }
21*d9ecfb0fSAndroid Build Coastguard Worker }