Skip to content

Commit

Permalink
dockerfile: fix qemu built, update llvm to 12
Browse files Browse the repository at this point in the history
  • Loading branch information
vanhauser-thc committed Feb 4, 2021
1 parent ec737f3 commit bf1198c
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 13 deletions.
15 changes: 8 additions & 7 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get -y install --no-install-suggests --no-install-recommends \
automake \
ninja-build \
bison flex \
build-essential \
git \
Expand All @@ -26,7 +27,7 @@ RUN apt-get update && \
gnuplot-nox \
&& rm -rf /var/lib/apt/lists/*

RUN echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main" >> /etc/apt/sources.list && \
RUN echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-12 main" >> /etc/apt/sources.list && \
wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -

RUN echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal main" >> /etc/apt/sources.list && \
Expand All @@ -35,17 +36,17 @@ RUN echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal main
RUN apt-get update && apt-get full-upgrade -y && \
apt-get -y install --no-install-suggests --no-install-recommends \
gcc-10 g++-10 gcc-10-plugin-dev gcc-10-multilib gdb lcov \
clang-11 clang-tools-11 libc++1-11 libc++-11-dev \
libc++abi1-11 libc++abi-11-dev libclang1-11 libclang-11-dev \
libclang-common-11-dev libclang-cpp11 libclang-cpp11-dev liblld-11 \
liblld-11-dev liblldb-11 liblldb-11-dev libllvm11 libomp-11-dev \
libomp5-11 lld-11 lldb-11 llvm-11 llvm-11-dev llvm-11-runtime llvm-11-tools \
clang-12 clang-tools-12 libc++1-12 libc++-12-dev \
libc++abi1-12 libc++abi-12-dev libclang1-12 libclang-12-dev \
libclang-common-12-dev libclang-cpp12 libclang-cpp12-dev liblld-12 \
liblld-12-dev liblldb-12 liblldb-12-dev libllvm12 libomp-12-dev \
libomp5-12 lld-12 lldb-12 llvm-12 llvm-12-dev llvm-12-runtime llvm-12-tools \
&& rm -rf /var/lib/apt/lists/*

RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 0
RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 0

ENV LLVM_CONFIG=llvm-config-11
ENV LLVM_CONFIG=llvm-config-12
ENV AFL_SKIP_CPUFREQ=1

RUN git clone https://github.com/vanhauser-thc/afl-cov /afl-cov
Expand Down
12 changes: 6 additions & 6 deletions instrumentation/afl-llvm-lto-instrumentation.so.cc
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ class AFLLTOPass : public ModulePass {

if (getenv("AFL_DEBUG")) debug = 1;
if ((ptr = getenv("AFL_LLVM_LTO_STARTID")) != NULL)
if ((afl_global_id = atoi(ptr)) < 0 || afl_global_id >= MAP_SIZE)
if ((afl_global_id = (uint32_t)atoi(ptr)) < 0 || afl_global_id >= MAP_SIZE)
FATAL("AFL_LLVM_LTO_STARTID value of \"%s\" is not between 0 and %u\n",
ptr, MAP_SIZE - 1);

Expand All @@ -88,7 +88,7 @@ class AFLLTOPass : public ModulePass {
bool runOnModule(Module &M) override;

protected:
int afl_global_id = 1, autodictionary = 1;
uint32_t afl_global_id = 1, autodictionary = 1;
uint32_t function_minimum_size = 1;
uint32_t inst_blocks = 0, inst_funcs = 0, total_instr = 0;
uint64_t map_addr = 0x10000;
Expand Down Expand Up @@ -800,7 +800,7 @@ bool AFLLTOPass::runOnModule(Module &M) {

if (documentFile) {

fprintf(documentFile, "ModuleID=%llu Function=%s edgeID=%d\n",
fprintf(documentFile, "ModuleID=%llu Function=%s edgeID=%u\n",
moduleID, F.getName().str().c_str(), afl_global_id);

}
Expand Down Expand Up @@ -872,10 +872,10 @@ bool AFLLTOPass::runOnModule(Module &M) {
while ((map = map >> 1))
pow2map++;
WARNF(
"We have %d blocks to instrument but the map size is only %u. Either "
"We have %u blocks to instrument but the map size is only %u. Either "
"edit config.h and set MAP_SIZE_POW2 from %d to %u, then recompile "
"afl-fuzz and llvm_mode and then make this target - or set "
"AFL_MAP_SIZE with at least size %d when running afl-fuzz with this "
"AFL_MAP_SIZE with at least size %u when running afl-fuzz with this "
"target.",
afl_global_id, MAP_SIZE, MAP_SIZE_POW2, pow2map, afl_global_id);

Expand Down Expand Up @@ -925,7 +925,7 @@ bool AFLLTOPass::runOnModule(Module &M) {

uint32_t write_loc = afl_global_id;

if (afl_global_id % 8) write_loc = (((afl_global_id + 8) >> 3) << 3);
if (afl_global_id % 32) write_loc = (((afl_global_id + 32) >> 4) << 4);

GlobalVariable *AFLFinalLoc = new GlobalVariable(
M, Int32Ty, true, GlobalValue::ExternalLinkage, 0, "__afl_final_loc");
Expand Down
2 changes: 2 additions & 0 deletions unicorn_mode/build_unicorn_support.sh
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@ if [ "$PREREQ_NOTFOUND" = "1" ]; then
exit 1
fi

unset CFLAGS

echo "[+] All checks passed!"

echo "[*] Making sure unicornafl is checked out"
Expand Down

0 comments on commit bf1198c

Please sign in to comment.