From 9a3002038e891237ff5b561f756a0ff6e32d1d2f Mon Sep 17 00:00:00 2001 From: Ethan Graham Date: Mon, 15 Sep 2025 12:56:38 +0000 Subject: pkg/kfuzztest: add pkg/kfuzztest Add a new package, pkg/kfuzztest, that implements dynamic discovery of KFuzzTest targets by parsing a vmlinux kernel binary. Signed-off-by: Ethan Graham --- pkg/kfuzztest/testdata/1/desc.txt | 7 +++++++ pkg/kfuzztest/testdata/1/prog.c | 24 ++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 pkg/kfuzztest/testdata/1/desc.txt create mode 100644 pkg/kfuzztest/testdata/1/prog.c (limited to 'pkg/kfuzztest/testdata/1') diff --git a/pkg/kfuzztest/testdata/1/desc.txt b/pkg/kfuzztest/testdata/1/desc.txt new file mode 100644 index 000000000..71c4acb39 --- /dev/null +++ b/pkg/kfuzztest/testdata/1/desc.txt @@ -0,0 +1,7 @@ +# This description was automatically generated with tools/kfuzztest-gen +pkcs7_parse_message_arg { + data ptr[in, array[int8]] + datalen len[data, int64] +} + +syz_kfuzztest_run$test_pkcs7_parse_message(name ptr[in, string["test_pkcs7_parse_message"]], data ptr[in, pkcs7_parse_message_arg], len bytesize[data]) (kfuzz_test) diff --git a/pkg/kfuzztest/testdata/1/prog.c b/pkg/kfuzztest/testdata/1/prog.c new file mode 100644 index 000000000..b1940ba1f --- /dev/null +++ b/pkg/kfuzztest/testdata/1/prog.c @@ -0,0 +1,24 @@ +// Copyright 2025 syzkaller project authors. All rights reserved. +// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. +#include "../common.h" + +#include +#include + +struct pkcs7_parse_message_arg { + const void* data; + size_t datalen; +}; + +DEFINE_FUZZ_TARGET(test_pkcs7_parse_message, struct pkcs7_parse_message_arg); +/* Expect data != NULL. */ +DEFINE_CONSTRAINT(pkcs7_parse_message_arg, data, NULL, NULL, EXPECT_NE); +/* Expect datalen == len(data). */ +DEFINE_ANNOTATION(pkcs7_parse_message_arg, datalen, data, ATTRIBUTE_LEN); +/* Annotate data as an array. */ +DEFINE_ANNOTATION(pkcs7_parse_message_arg, data, , ATTRIBUTE_ARRAY); + +/* Define a main function, otherwise the compiler complains. */ +int main(void) +{ +} -- cgit mrf-deployment