diff --git a/configure.in b/configure.in index 423d58d..4beea8c 100644 --- a/configure.in +++ b/configure.in @@ -769,7 +769,7 @@ AC_MSG_CHECKING([for Check to enable unit tests]) if test "x$PKGCONFIG" != "x" -a "$ap_reduced_exports" = "no" && `$PKGCONFIG --atleast-version='0.9.12' check`; then UNITTEST_CFLAGS=`$PKGCONFIG --cflags check` UNITTEST_LIBS=`$PKGCONFIG --libs check` - other_targets="$other_targets test/httpdunit" + other_targets="$other_targets" AC_MSG_RESULT([yes]) else diff --git a/hfuzz.compile_and_install.asan.sh b/hfuzz.compile_and_install.asan.sh new file mode 100755 index 0000000..ad24349 --- /dev/null +++ b/hfuzz.compile_and_install.asan.sh @@ -0,0 +1,63 @@ +#!/bin/sh + +set -ex + +# Directory with honggfuzz installation +HFUZZ_DIR="/home/jagger/src/honggfuzz" +# Change this to a directory where apache should be installed into +INSTALL_PREFIX="$(realpath "$PWD/../dist")" +NGHTTP2_VER=1.40.0 +APR_VER=1.7.0 +APR_UTIL_VER=1.6.1 +CFLAGS_SAN="-fsanitize=address -O3 -ggdb" +# Another viable option: few +APACHE_MODULES=most + +NGHTTP2_PATH="$(realpath "$PWD/../nghttp2-$NGHTTP2_VER")/" +APR_PATH="$(realpath "$PWD/../apr-$APR_VER")" +APR_UTIL_PATH="$(realpath "$PWD/../apr-util-$APR_UTIL_VER")/" + +export CC="$HFUZZ_DIR/hfuzz_cc/hfuzz-pcguard-clang" +export CXX="$HFUZZ_DIR/hfuzz_cc/hfuzz-pcguard-clang++" + +echo "Compiling APR" +cd "$APR_PATH" +CFLAGS="$CFLAGS_SAN" ./configure --disable-shared --enable-static +make clean +make -j$(nproc) +cd - + +echo "Compiling APR-UTIL" +cd "$APR_UTIL_PATH" +CFLAGS="$CFLAGS_SAN" ./configure --with-apr="$APR_PATH" --disable-shared --enable-static +make clean +make -j$(nproc) +cd - + +echo "Compiling NGHTTP2" +cd "$NGHTTP2_PATH" +CFLAGS="$CFLAGS_SAN" CXXFLAGS="$CFLAGS_SAN" ./configure --disable-shared --enable-static +make clean +make -j$(nproc) +cd - + +echo "Install PATH: $INSTALL_PREFIX" +./buildconf --with-apr="$APR_PATH" --with-apr-util="$APR_UTIL_PATH" + +echo "Compiling HTTPD" +CFLAGS="-I$NGHTTP2_PATH/lib/includes $CFLAGS_SAN -ggdb -O3" LDFLAGS="-L$NGHTTP2_PATH/lib -lpthread" \ +./configure \ + --prefix="$INSTALL_PREFIX" \ + --with-nghttp2="$NGHTTP2_PATH/" \ + --enable-http2 \ + --enable-nghttp2-staticlib-deps \ + --with-mpm=event \ + --enable-unixd \ + --disable-pie \ + --disable-ssl \ + --enable-mods-static=$APACHE_MODULES \ + --with-apr="$APR_PATH" \ + --with-apr-util="$APR_UTIL_PATH" +make clean +make -j$(nproc) +make install diff --git a/modules/generators/mod_autoindex.c b/modules/generators/mod_autoindex.c index 21fc59a..3c67164 100644 --- a/modules/generators/mod_autoindex.c +++ b/modules/generators/mod_autoindex.c @@ -1907,6 +1907,8 @@ static void output_directories(struct ent **ar, int n, static int dsortf(struct ent **e1, struct ent **e2) { + return 0; + struct ent *c1; struct ent *c2; int result = 0; diff --git a/server/request.c b/server/request.c index a448fa7..c4785d4 100644 --- a/server/request.c +++ b/server/request.c @@ -1401,7 +1401,7 @@ AP_DECLARE(int) ap_directory_walk(request_rec *r) return OK; } - +__attribute__((no_sanitize("memory"))) AP_DECLARE(int) ap_location_walk(request_rec *r) { ap_conf_vector_t *now_merged = NULL; diff --git a/server/util_pcre.c b/server/util_pcre.c index fedf6e6..053eb77 100644 --- a/server/util_pcre.c +++ b/server/util_pcre.c @@ -390,6 +390,7 @@ AP_DECLARE(int) ap_regexec_len(const ap_regex_t *preg, const char *buff, } } +__attribute__((no_sanitize("memory"))) AP_DECLARE(int) ap_regname(const ap_regex_t *preg, apr_array_header_t *names, const char *prefix, int upper)