|
1 | 1 | #!/bin/bash -eu |
2 | | -# Copyright 2018 Google Inc. |
| 2 | +# Copyright 2017 Google Inc. |
3 | 3 | # |
4 | 4 | # Licensed under the Apache License, Version 2.0 (the "License"); |
5 | 5 | # you may not use this file except in compliance with the License. |
|
15 | 15 | # |
16 | 16 | ################################################################################ |
17 | 17 |
|
| 18 | +WIRESHARK_BUILD_PATH="$WORK/build" |
| 19 | +mkdir -p "$WIRESHARK_BUILD_PATH" |
18 | 20 |
|
19 | | -mkdir seeds |
20 | | -find . -name "*.pcap" -exec cp {} seeds \; |
21 | | -cp -r seeds $OUT/ |
| 21 | +# Prepare Samples directory |
| 22 | +export SAMPLES_DIR="$WORK/samples" |
| 23 | +mkdir -p "$SAMPLES_DIR" |
| 24 | +cp -a $SRC/wireshark-fuzzdb/samples/* "$SAMPLES_DIR" |
22 | 25 |
|
23 | | -mkdir build |
24 | | -cd build |
| 26 | +# Make sure we build fuzzshark. |
| 27 | +CMAKE_DEFINES="-DBUILD_fuzzshark=ON" |
25 | 28 |
|
26 | | -cmake -G Ninja .. \ |
| 29 | +# compile static version of libs |
| 30 | +# XXX, with static wireshark linking each fuzzer binary is ~346 MB (just libwireshark.a is 761 MB). |
| 31 | +# XXX, wireshark is not ready for including static plugins into binaries. |
| 32 | +CMAKE_DEFINES="$CMAKE_DEFINES -DENABLE_STATIC=ON -DENABLE_PLUGINS=OFF" |
| 33 | + |
| 34 | +# disable optional dependencies |
| 35 | +CMAKE_DEFINES="$CMAKE_DEFINES -DENABLE_PCAP=OFF -DENABLE_GNUTLS=OFF" |
| 36 | + |
| 37 | +# There is no need to manually disable programs via BUILD_xxx=OFF since the |
| 38 | +# all-fuzzers targets builds the minimum required binaries. However we do have |
| 39 | +# to disable the Qt GUI and sharkd or else the cmake step will fail. |
| 40 | +CMAKE_DEFINES="$CMAKE_DEFINES -DBUILD_wireshark=OFF -DBUILD_logray=OFF -DBUILD_sharkd=OFF" |
| 41 | + |
| 42 | +cd "$WIRESHARK_BUILD_PATH" |
| 43 | + |
| 44 | +cmake -G Ninja \ |
27 | 45 | -DENABLE_STATIC=ON \ |
28 | 46 | -DOSS_FUZZ=ON \ |
29 | 47 | -DINSTRUMENT_DISSECTORS_ONLY=ON \ |
@@ -51,9 +69,14 @@ cmake -G Ninja .. \ |
51 | 69 | -DENABLE_ILBC=OFF \ |
52 | 70 | -DENABLE_LIBXML2=OFF \ |
53 | 71 | -DENABLE_OPUS=OFF \ |
54 | | - -DENABLE_SINSP=OFF |
| 72 | + -DENABLE_SINSP=OFF $SRC/wireshark/ |
| 73 | + |
| 74 | +# cmake -GNinja \ |
| 75 | +# -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX \ |
| 76 | +# -DCMAKE_C_FLAGS="-Wno-error=fortify-source -Wno-error=missing-field-initializers $CFLAGS" -DCMAKE_CXX_FLAGS="-Wno-error=fortify-source -Wno-error=missing-field-initializers $CXXFLAGS" \ |
| 77 | +# -DDISABLE_WERROR=ON -DOSS_FUZZ=ON $CMAKE_DEFINES $SRC/wireshark/ |
55 | 78 |
|
56 | 79 | ninja fuzzshark |
57 | | -cp run/fuzzshark $OUT/fuzzshark |
58 | | -export FUZZSHARK_TARGET="tcp" |
59 | 80 |
|
| 81 | + |
| 82 | +$SRC/wireshark/tools/oss-fuzzshark/build.sh all |
0 commit comments