]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
fuzz: add hostname-util fuzzer
authorFrantisek Sumsal <frantisek@sumsal.cz>
Mon, 11 Mar 2019 11:43:00 +0000 (12:43 +0100)
committerFrantisek Sumsal <frantisek@sumsal.cz>
Mon, 11 Mar 2019 13:12:06 +0000 (14:12 +0100)
src/fuzz/fuzz-hostname-util.c [new file with mode: 0644]
src/fuzz/meson.build

diff --git a/src/fuzz/fuzz-hostname-util.c b/src/fuzz/fuzz-hostname-util.c
new file mode 100644 (file)
index 0000000..deaf811
--- /dev/null
@@ -0,0 +1,28 @@
+/* SPDX-License-Identifier: LGPL-2.1+ */
+
+#include <errno.h>
+
+#include "alloc-util.h"
+#include "fd-util.h"
+#include "fuzz.h"
+#include "hostname-util.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+        _cleanup_fclose_ FILE *f = NULL;
+        _cleanup_free_ char *ret = NULL;
+
+        if (size == 0)
+                return 0;
+
+        f = fmemopen((char*) data, size, "re");
+        assert_se(f);
+
+        /* We don't want to fill the logs with messages about parse errors.
+         * Disable most logging if not running standalone */
+        if (!getenv("SYSTEMD_LOG_LEVEL"))
+                log_set_max_level(LOG_CRIT);
+
+        (void) read_etc_hostname_stream(f, &ret);
+
+        return 0;
+}
index d09006f640f45e517bb8a550909b459e39a411be..e851d4e764037f9b66abf40918ea8eb78b35ef60 100644 (file)
@@ -120,4 +120,8 @@ fuzzers += [
         [['src/fuzz/fuzz-env-file.c'],
          [libshared],
          []],
+
+        [['src/fuzz/fuzz-hostname-util.c'],
+         [libshared],
+         []],
 ]