]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: integrate test_mount_fuzz into the testsuite
authorEvgeny Vereshchagin <evvers@ya.ru>
Tue, 28 Jul 2020 00:56:04 +0000 (00:56 +0000)
committerEvgeny Vereshchagin <evvers@ya.ru>
Thu, 6 Aug 2020 12:33:11 +0000 (12:33 +0000)
Signed-off-by: Evgeny Vereshchagin <evvers@ya.ru>
include/fuzz.h [new file with mode: 0644]
libmount/src/fuzz.c
tests/commands.sh
tests/ts/fuzzers/test_mount_fuzz [new file with mode: 0755]
tests/ts/fuzzers/test_mount_fuzz_files/oss-fuzz-23722 [new file with mode: 0644]

diff --git a/include/fuzz.h b/include/fuzz.h
new file mode 100644 (file)
index 0000000..1b0dbd2
--- /dev/null
@@ -0,0 +1,9 @@
+#ifndef UTIL_LINUX_FUZZ_H
+#define UTIL_LINUX_FUZZ_H
+
+#include <stddef.h>
+#include <stdint.h>
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
+
+#endif /* UTIL_LINUX_FUZZ_H */
index 7363e2bd9861fab3cb17b421e9feb43c459ded69..adfd10605211f5e0f067a99a538f82b5a63e4b5e 100644 (file)
@@ -1,3 +1,4 @@
+#include "fuzz.h"
 #include "mountP.h"
 
 #include <stddef.h>
index 5f34452737f7333a2c11ed605ffb5b78e95d5bb3..2bccaa0815821b28ecae3db2b2b820019248f8e8 100644 (file)
@@ -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 (executable)
index 0000000..6106863
--- /dev/null
@@ -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 (file)
index 0000000..f66c9cf
Binary files /dev/null and b/tests/ts/fuzzers/test_mount_fuzz_files/oss-fuzz-23722 differ