aboutsummaryrefslogtreecommitdiff
path: root/docker/jazzer-autofuzz
diff options
context:
space:
mode:
Diffstat (limited to 'docker/jazzer-autofuzz')
-rw-r--r--docker/jazzer-autofuzz/Dockerfile30
-rwxr-xr-xdocker/jazzer-autofuzz/entrypoint.sh24
2 files changed, 54 insertions, 0 deletions
diff --git a/docker/jazzer-autofuzz/Dockerfile b/docker/jazzer-autofuzz/Dockerfile
new file mode 100644
index 00000000..5d57f2a8
--- /dev/null
+++ b/docker/jazzer-autofuzz/Dockerfile
@@ -0,0 +1,30 @@
+# Copyright 2021 Code Intelligence GmbH
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM cifuzz/jazzer as jazzer
+
+FROM ubuntu:20.04
+
+ENV DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y curl openjdk-11-jdk-headless
+
+WORKDIR /app
+RUN curl -L 'https://github.com/coursier/coursier/releases/download/v2.0.16/coursier.jar' -o coursier.jar && \
+ chmod +x coursier.jar
+
+COPY entrypoint.sh /app/
+COPY --from=jazzer /app/jazzer_agent_deploy.jar /app/jazzer_driver /app/
+
+WORKDIR /fuzzing
+ENTRYPOINT ["/app/entrypoint.sh"]
diff --git a/docker/jazzer-autofuzz/entrypoint.sh b/docker/jazzer-autofuzz/entrypoint.sh
new file mode 100755
index 00000000..78c57f71
--- /dev/null
+++ b/docker/jazzer-autofuzz/entrypoint.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+# Copyright 2021 Code Intelligence GmbH
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -e
+
+CP="$(/app/coursier.jar fetch --classpath "$1")"
+/app/jazzer_driver \
+ -artifact_prefix=/fuzzing/ \
+ --reproducer_path=/fuzzing \
+ --cp="$CP" \
+ --autofuzz="$2" \
+ "${@:3}"