You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2020/05/05 01:22:50 UTC

[tika] 03/04: add -Xmx to fuzzing cli

This is an automated email from the ASF dual-hosted git repository.

tallison pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tika.git

commit 18dc79b68997fc0abf71f9f97eedb9aa381c0280
Author: tallison <ta...@apache.org>
AuthorDate: Mon May 4 15:00:10 2020 -0400

    add -Xmx to fuzzing cli
---
 .../main/java/org/apache/tika/fuzzing/cli/FuzzingCLI.java  |  6 +++++-
 .../java/org/apache/tika/fuzzing/cli/FuzzingCLIConfig.java | 14 ++++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/tika-fuzzing/src/main/java/org/apache/tika/fuzzing/cli/FuzzingCLI.java b/tika-fuzzing/src/main/java/org/apache/tika/fuzzing/cli/FuzzingCLI.java
index 3857a9a..a6a5f93 100644
--- a/tika-fuzzing/src/main/java/org/apache/tika/fuzzing/cli/FuzzingCLI.java
+++ b/tika-fuzzing/src/main/java/org/apache/tika/fuzzing/cli/FuzzingCLI.java
@@ -122,6 +122,8 @@ public class FuzzingCLI {
 
             String[] args = new String[] {
                     "java",
+                    "-XX:-OmitStackTraceInFastThrow",
+                    "-Xmx"+config.xmx,
                     "-ea",
                     "-cp",
                     ProcessUtils.escapeCommandLine(cp),
@@ -210,7 +212,9 @@ public class FuzzingCLI {
                     LOG.info("hit maxfiles; file crawler is stopping early");
                     return FileVisitResult.TERMINATE;
                 }
-
+                if (!file.getFileName().toString().contains("sas7bdat")) {
+                    return FileVisitResult.CONTINUE;
+                }
                 try {
                     boolean offered = queue.offer(file, 10, TimeUnit.MINUTES);
                     if (offered) {
diff --git a/tika-fuzzing/src/main/java/org/apache/tika/fuzzing/cli/FuzzingCLIConfig.java b/tika-fuzzing/src/main/java/org/apache/tika/fuzzing/cli/FuzzingCLIConfig.java
index 324b934..206510b 100644
--- a/tika-fuzzing/src/main/java/org/apache/tika/fuzzing/cli/FuzzingCLIConfig.java
+++ b/tika-fuzzing/src/main/java/org/apache/tika/fuzzing/cli/FuzzingCLIConfig.java
@@ -37,6 +37,8 @@ public class FuzzingCLIConfig {
 
     private static final int DEFAULT_RETRIES = 2;
 
+    private static final String DEFAULT_XMX = "512m";
+
     static Options OPTIONS;
     static {
         //By the time this commandline is parsed, there should be both an extracts and an inputDir
@@ -81,6 +83,12 @@ public class FuzzingCLIConfig {
                         .hasArg(true)
                         .required(false)
                         .build())
+                .addOption(Option.builder("x")
+                        .longOpt("xmx")
+                        .desc("e.g. 1G, max heap appended to -Xmx in the child process")
+                        .hasArg(true)
+                        .required(false)
+                        .build())
                 .addOption(Option.builder("r")
                         .longOpt("retries")
                         .desc("number of times to retry a seed file if there's a catastrophic failure")
@@ -111,6 +119,9 @@ public class FuzzingCLIConfig {
         config.retries = (commandLine.hasOption("r")) ?
                 Integer.parseInt(commandLine.getOptionValue("r")) :
                 DEFAULT_RETRIES;
+        config.xmx = (commandLine.hasOption("x")) ?
+                commandLine.getOptionValue("x") :
+                DEFAULT_XMX;
         return config;
     }
 
@@ -126,6 +137,9 @@ public class FuzzingCLIConfig {
 
     //times to retry a seed file after a catastrophic failure
     int retries;
+
+    //xmx for child process, e.g. 512m or 1G
+    String xmx;
     Path inputDir;
     Path outputDir;