From 7b4ab119f4e45d1873cae035684f010a457fb111 Mon Sep 17 00:00:00 2001 From: Evgeny Vereshchagin Date: Tue, 28 Jul 2020 00:56:04 +0000 Subject: [PATCH] tests: integrate test_mount_fuzz into the testsuite Signed-off-by: Evgeny Vereshchagin --- include/fuzz.h | 9 ++++++ libmount/src/fuzz.c | 1 + tests/commands.sh | 1 + tests/ts/fuzzers/test_mount_fuzz | 26 ++++++++++++++++++ .../test_mount_fuzz_files/oss-fuzz-23722 | Bin 0 -> 4 bytes 5 files changed, 37 insertions(+) create mode 100644 include/fuzz.h create mode 100755 tests/ts/fuzzers/test_mount_fuzz create mode 100644 tests/ts/fuzzers/test_mount_fuzz_files/oss-fuzz-23722 diff --git a/include/fuzz.h b/include/fuzz.h new file mode 100644 index 000000000..1b0dbd268 --- /dev/null +++ b/include/fuzz.h @@ -0,0 +1,9 @@ +#ifndef UTIL_LINUX_FUZZ_H +#define UTIL_LINUX_FUZZ_H + +#include +#include + +int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size); + +#endif /* UTIL_LINUX_FUZZ_H */ diff --git a/libmount/src/fuzz.c b/libmount/src/fuzz.c index 7363e2bd9..adfd10605 100644 --- a/libmount/src/fuzz.c +++ b/libmount/src/fuzz.c @@ -1,3 +1,4 @@ +#include "fuzz.h" #include "mountP.h" #include diff --git a/tests/commands.sh b/tests/commands.sh index 5f3445273..2bccaa081 100644 --- a/tests/commands.sh +++ b/tests/commands.sh @@ -18,6 +18,7 @@ TS_HELPER_LIBMOUNT_TAB="${ts_helpersdir}test_mount_tab" TS_HELPER_LIBMOUNT_UPDATE="${ts_helpersdir}test_mount_tab_update" TS_HELPER_LIBMOUNT_UTILS="${ts_helpersdir}test_mount_utils" TS_HELPER_LIBMOUNT_DEBUG="${ts_helpersdir}test_mount_debug" +TS_HELPER_LIBMOUNT_FUZZ="${ts_helpersdir}test_mount_fuzz" TS_HELPER_LIBSMARTCOLS_FROMFILE="${ts_helpersdir}sample-scols-fromfile" TS_HELPER_LIBSMARTCOLS_TITLE="${ts_helpersdir}sample-scols-title" TS_HELPER_PYLIBMOUNT_CONTEXT="$top_srcdir/libmount/python/test_mount_context.py" diff --git a/tests/ts/fuzzers/test_mount_fuzz b/tests/ts/fuzzers/test_mount_fuzz new file mode 100755 index 000000000..610686301 --- /dev/null +++ b/tests/ts/fuzzers/test_mount_fuzz @@ -0,0 +1,26 @@ +#!/bin/bash + +# This file is part of util-linux. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +TS_TOPDIR="${0%/*}/../.." +TS_DESC="test_mount_fuzz" + +. $TS_TOPDIR/functions.sh +ts_init "$*" + +ts_check_test_command "$TS_HELPER_LIBMOUNT_FUZZ" + +mkdir -p ${TS_OUTPUT}_workdir +ts_run $TS_HELPER_LIBMOUNT_FUZZ ${TS_OUTPUT}_workdir ${TS_SCRIPT}_files -max_total_time=10 >$TS_OUTPUT 2>$TS_ERRLOG + +ts_finalize diff --git a/tests/ts/fuzzers/test_mount_fuzz_files/oss-fuzz-23722 b/tests/ts/fuzzers/test_mount_fuzz_files/oss-fuzz-23722 new file mode 100644 index 0000000000000000000000000000000000000000..f66c9cf4c9672fa2832bce76f4082fd97b823506 GIT binary patch literal 4 LcmZQ%U|;|M00;mA literal 0 HcmV?d00001