aboutsummaryrefslogtreecommitdiffhomepage
path: root/projects
diff options
context:
space:
mode:
authorGravatar inferno-chromium <inferno@chromium.org>2016-12-11 13:17:56 -0800
committerGravatar GitHub <noreply@github.com>2016-12-11 13:17:56 -0800
commit5f314f365e84ed68891d42dc8901074e6407b754 (patch)
tree840d92dca89d2b794e04657e01ad4f217ad2a790 /projects
parent46224562baaa4db7faa48dffbd19136a83bf5854 (diff)
Use c-ares fuzzer from its repo. (#167)
Diffstat (limited to 'projects')
-rw-r--r--projects/c-ares/Dockerfile2
-rwxr-xr-xprojects/c-ares/build.sh10
-rw-r--r--projects/c-ares/c_ares_ares_create_query_fuzzer.cc31
3 files changed, 8 insertions, 35 deletions
diff --git a/projects/c-ares/Dockerfile b/projects/c-ares/Dockerfile
index 9f22cb88..06bdc181 100644
--- a/projects/c-ares/Dockerfile
+++ b/projects/c-ares/Dockerfile
@@ -19,4 +19,4 @@ MAINTAINER mmoroz@chromium.org
RUN apt-get install -y make autoconf automake libtool
RUN git clone --depth 1 https://github.com/c-ares/c-ares.git
WORKDIR c-ares
-COPY build.sh *_fuzzer.cc $SRC/
+COPY build.sh $SRC/
diff --git a/projects/c-ares/build.sh b/projects/c-ares/build.sh
index 8b3f1f69..b5f3d827 100755
--- a/projects/c-ares/build.sh
+++ b/projects/c-ares/build.sh
@@ -22,7 +22,11 @@ make clean
make -j$(nproc) V=1 all
# Build the fuzzer.
-$CXX $CXXFLAGS -std=c++11 -I. \
- $SRC/c_ares_ares_create_query_fuzzer.cc \
- -o $OUT/c_ares_ares_create_query_fuzzer \
+$CC $CFLAGS -I. -c $SRC/c-ares/test/ares-test-fuzz.c -o $WORK/ares-test-fuzz.o
+$CXX $CXXFLAGS -std=c++11 \
+ $WORK/ares-test-fuzz.o \
+ -o $OUT/ares_parse_reply_fuzzer \
-lFuzzingEngine $SRC/c-ares/.libs/libcares.a
+
+# Archive and copy to $OUT seed corpus if the build succeeded.
+zip -j $OUT/ares_parse_reply_fuzzer_seed_corpus.zip $SRC/c-ares/test/fuzzinput/*
diff --git a/projects/c-ares/c_ares_ares_create_query_fuzzer.cc b/projects/c-ares/c_ares_ares_create_query_fuzzer.cc
deleted file mode 100644
index fc12938e..00000000
--- a/projects/c-ares/c_ares_ares_create_query_fuzzer.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2016 Google Inc.
-//
-// 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.
-
-#include <stdint.h>
-#include <stdlib.h>
-
-#include <arpa/nameser.h>
-
-#include <string>
-
-#include <ares.h>
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
- unsigned char *buf;
- int buflen;
- std::string s(reinterpret_cast<const char *>(data), size);
- ares_create_query(s.c_str(), ns_c_in, ns_t_a, 0x1234, 0, &buf, &buflen, 0);
- ares_free_string(buf);
- return 0;
-}