mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 07:30:19 +00:00
Meta: Update Fuzzili instructions and dockerfile since patch is upstream
This commit is contained in:
parent
00b24a55b1
commit
480cbd9126
Notes:
sideshowbarker
2024-07-17 05:18:58 +09:00
Author: https://github.com/ADKaster Commit: https://github.com/SerenityOS/serenity/commit/480cbd9126 Pull-request: https://github.com/SerenityOS/serenity/pull/22665
3 changed files with 9 additions and 77 deletions
|
@ -18,54 +18,33 @@
|
||||||
# but this doesn't use the same approach - that would require a fair amount of patching
|
# but this doesn't use the same approach - that would require a fair amount of patching
|
||||||
# which is not worth it, unless we plan to add LibJS support to Fuzzilli upstream.
|
# which is not worth it, unless we plan to add LibJS support to Fuzzilli upstream.
|
||||||
|
|
||||||
FROM fedora:33 AS serenity-build
|
FROM fedora:39 AS serenity-build
|
||||||
|
|
||||||
WORKDIR /home
|
WORKDIR /home
|
||||||
RUN dnf install -y clang cmake git-core ninja-build
|
RUN dnf install -y clang cmake git-core ninja-build
|
||||||
RUN git clone --depth=1 https://github.com/SerenityOS/serenity
|
RUN git clone --depth=1 https://github.com/SerenityOS/serenity
|
||||||
RUN mkdir /home/serenity/Build
|
|
||||||
|
|
||||||
WORKDIR /home/serenity/Build
|
RUN cd serenity/Meta/Lagom && ./BuildFuzzers.sh
|
||||||
RUN sed -i 's/-Wmissing-declarations //' ../CMakeLists.txt
|
|
||||||
|
|
||||||
# In file included from ../Libraries/LibGfx/Font.cpp:37:
|
FROM fedora:39 AS fuzzilli-build
|
||||||
# ../Libraries/LibCore/FileStream.h:96:5: error: explicitly defaulted default constructor is implicitly deleted [-Werror,-Wdefaulted-function-deleted]
|
|
||||||
# InputFileStream() = default;
|
|
||||||
# ^
|
|
||||||
# -------------------------------------------------------------------
|
|
||||||
# I have no idea how to fix this, so I'll allow it. It's not relevant
|
|
||||||
# as LibJS doesn't use LibGfx; but I suppose Lagom builds it anyway.
|
|
||||||
# ¯\_(ツ)_/¯
|
|
||||||
RUN CXXFLAGS="-Wno-defaulted-function-deleted" \
|
|
||||||
cmake -GNinja \
|
|
||||||
-DBUILD_LAGOM=ON \
|
|
||||||
-DENABLE_FUZZERS_LIBFUZZER=ON \
|
|
||||||
-DCMAKE_C_COMPILER=clang \
|
|
||||||
-DCMAKE_CXX_COMPILER=clang++ \
|
|
||||||
..
|
|
||||||
RUN ninja FuzzilliJs
|
|
||||||
|
|
||||||
|
|
||||||
FROM fedora:33 AS fuzzilli-build
|
|
||||||
|
|
||||||
WORKDIR /home
|
WORKDIR /home
|
||||||
RUN dnf install -y git-core patch swift-lang
|
RUN dnf install -y git-core patch swift-lang
|
||||||
RUN git clone --depth=1 https://github.com/googleprojectzero/fuzzilli
|
RUN git clone --depth=1 https://github.com/googleprojectzero/fuzzilli
|
||||||
|
|
||||||
WORKDIR /home/fuzzilli
|
WORKDIR /home/fuzzilli
|
||||||
COPY --from=serenity-build /home/serenity/Meta/Lagom/Fuzzers/add-serenity-support-to-fuzzilli.patch .
|
|
||||||
RUN patch -p1 < add-serenity-support-to-fuzzilli.patch
|
|
||||||
RUN swift build -c release
|
RUN swift build -c release
|
||||||
|
|
||||||
|
|
||||||
FROM fedora:33
|
FROM fedora:39
|
||||||
|
|
||||||
WORKDIR /home
|
WORKDIR /home
|
||||||
# This is unfortunate, but we need libswiftCore.so (and possibly other files) from the
|
# This is unfortunate, but we need libswiftCore.so (and possibly other files) from the
|
||||||
# Swift runtime. The "swift-lang-runtime" package doesn't seem to exist in Fedora 33 :/
|
# Swift runtime. The "swift-lang-runtime" package doesn't seem to exist in Fedora :/
|
||||||
RUN dnf install -y swift-lang
|
RUN dnf install -y swift-lang procps-ng
|
||||||
COPY --from=serenity-build /home/serenity/Build/Meta/Lagom/Fuzzers/FuzzilliJs .
|
COPY --from=serenity-build /home/serenity/Meta/Lagom/Build/lagom-fuzzers/bin ./bin
|
||||||
|
COPY --from=serenity-build /home/serenity/Meta/Lagom/Build/lagom-fuzzers/lib64 ./lib64
|
||||||
COPY --from=fuzzilli-build /home/fuzzilli/.build/x86_64-unknown-linux-gnu/release/FuzzilliCli .
|
COPY --from=fuzzilli-build /home/fuzzilli/.build/x86_64-unknown-linux-gnu/release/FuzzilliCli .
|
||||||
RUN mkdir fuzzilli-storage
|
RUN mkdir fuzzilli-storage
|
||||||
ENV FUZZILLI_CLI_OPTIONS ""
|
ENV FUZZILLI_CLI_OPTIONS ""
|
||||||
CMD [ "sh", "-c", "./FuzzilliCli --profile=serenity --storagePath=fuzzilli-storage ${FUZZILLI_CLI_OPTIONS} ./FuzzilliJs" ]
|
CMD [ "sh", "-c", "./FuzzilliCli --profile=serenity --storagePath=fuzzilli-storage ${FUZZILLI_CLI_OPTIONS} ./bin/FuzzilliJs" ]
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
1. Download a copy of the Fuzzilli repo from https://github.com/googleprojectzero/fuzzilli
|
1. Download a copy of the Fuzzilli repo from https://github.com/googleprojectzero/fuzzilli
|
||||||
2. Install Swift and make sure it's in your path environment variable.
|
2. Install Swift and make sure it's in your path environment variable.
|
||||||
3. Build FuzzilliJs as you would the other fuzzers. [See ReadMe.md in the parent folder.](https://github.com/SerenityOS/serenity/blob/master/Meta/Lagom/ReadMe.md)
|
3. Build FuzzilliJs as you would the other fuzzers. [See ReadMe.md in the parent folder.](https://github.com/SerenityOS/serenity/blob/master/Meta/Lagom/ReadMe.md)
|
||||||
4. Apply the add-serenity-support-to-fuzzilli.patch patch file to the Fuzzilli root directory. ```patch -p1 < /path/to/add-serenity-support-to-fuzzilli.patch```
|
|
||||||
5. Build Fuzzilli with ```swift build -c release```
|
5. Build Fuzzilli with ```swift build -c release```
|
||||||
6. Run Fuzzilli with ```swift run -c release FuzzilliCli --profile=serenity /path/to/FuzzilliJs```. See ```swift run FuzzilliCli --help``` for options.
|
6. Run Fuzzilli with ```swift run -c release FuzzilliCli --profile=serenity /path/to/FuzzilliJs```. See ```swift run FuzzilliCli --help``` for options.
|
||||||
|
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
diff --git a/Sources/FuzzilliCli/Profiles/Profile.swift b/Sources/FuzzilliCli/Profiles/Profile.swift
|
|
||||||
index 900b4e2..c916e84 100644
|
|
||||||
--- a/Sources/FuzzilliCli/Profiles/Profile.swift
|
|
||||||
+++ b/Sources/FuzzilliCli/Profiles/Profile.swift
|
|
||||||
@@ -33,6 +33,35 @@ struct Profile {
|
|
||||||
let additionalBuiltins: [String: Type]
|
|
||||||
}
|
|
||||||
|
|
||||||
+let serenityProfile = Profile(
|
|
||||||
+ processArguments: [""],
|
|
||||||
+
|
|
||||||
+ processEnv: ["UBSAN_OPTIONS":"handle_segv=0 handle_abrt=0"],
|
|
||||||
+
|
|
||||||
+ codePrefix: """
|
|
||||||
+ function main() {
|
|
||||||
+ """,
|
|
||||||
+
|
|
||||||
+ codeSuffix: """
|
|
||||||
+ }
|
|
||||||
+ main();
|
|
||||||
+ """,
|
|
||||||
+
|
|
||||||
+ ecmaVersion: ECMAScriptVersion.es6,
|
|
||||||
+
|
|
||||||
+ crashTests: ["fuzzilli('FUZZILLI_CRASH', 0)", "fuzzilli('FUZZILLI_CRASH', 1)"],
|
|
||||||
+
|
|
||||||
+ additionalCodeGenerators: WeightedList<CodeGenerator>([]),
|
|
||||||
+
|
|
||||||
+ additionalProgramTemplates: WeightedList<ProgramTemplate>([]),
|
|
||||||
+
|
|
||||||
+ disabledCodeGenerators: [],
|
|
||||||
+
|
|
||||||
+ additionalBuiltins: [
|
|
||||||
+ "gc" : .function([] => .undefined)
|
|
||||||
+ ]
|
|
||||||
+)
|
|
||||||
+
|
|
||||||
let profiles = [
|
|
||||||
"qjs": qjsProfile,
|
|
||||||
"jsc": jscProfile,
|
|
||||||
@@ -40,4 +69,5 @@ let profiles = [
|
|
||||||
"v8": v8Profile,
|
|
||||||
"duktape": duktapeProfile,
|
|
||||||
"jerryscript": jerryscriptProfile,
|
|
||||||
+ "serenity": serenityProfile,
|
|
||||||
]
|
|
Loading…
Reference in a new issue