• Home
Name Date Size #Lines LOC

..--

Android.bpD03-May-2024660 2725

CMakeLists.txtD03-May-2024516 2116

README.mdD03-May-20241.4 KiB6654

ossfuzz.shD03-May-20241.3 KiB4421

xaac_dec_fuzzer.cppD03-May-202430.9 KiB875585

xaac_dec_fuzzer.dictD03-May-202440 32

README.md

1# Fuzzer for libxaac decoder
2
3This describes steps to build xaac_dec_fuzzer binary.
4
5## Linux x86/x64
6
7###  Requirements
8- cmake (3.5 or above)
9- make
10- clang (6.0 or above)
11  needs to support -fsanitize=fuzzer, -fsanitize=fuzzer-no-link
12
13### Steps to build
14Clone libxaac repository
15```
16$ git clone https://android.googlesource.com/platform/external/libxaac
17```
18Create a directory inside libxaac and change directory
19```
20 $ cd libxaac
21 $ mkdir build
22 $ cd build
23```
24
25Build fuzzer with required sanitizers (-DSANITIZE=fuzzer-no-link is mandatory to enable fuzzers)
26```
27 $ cmake .. -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
28   -DCMAKE_BUILD_TYPE=Debug -DSANITIZE=fuzzer-no-link,address,\
29   signed-integer-overflow,unsigned-integer-overflow
30 $ make
31```
32
33### Steps to run
34Create a directory CORPUS_DIR and copy some elementary aac files to that folder
35To run the fuzzer
36```
37$ ./xaac_dec_fuzzer CORPUS_DIR
38```
39
40## Android
41
42### Steps to build
43Build the fuzzer
44```
45  $ SANITIZE_TARGET=address SANITIZE_HOST=address mmma -j$(nproc) \
46    external/libxaac/fuzzer
47```
48
49### Steps to run
50Create a directory CORPUS_DIR and copy some elementary aac files to that folder
51Push this directory to device.
52
53To run on device
54```
55  $ adb sync data
56  $ adb shell /data/fuzz/xaac_dec_fuzzer CORPUS_DIR
57```
58To run on host
59```
60  $ $ANDROID_HOST_OUT/fuzz/xaac_dec_fuzzer CORPUS_DIR
61```
62
63## References:
64 * http://llvm.org/docs/LibFuzzer.html
65 * https://github.com/google/oss-fuzz
66