From 2b954ddae4eb0905cb6bc1c0d2282655461a9fce Mon Sep 17 00:00:00 2001 From: Sebastian Brzezinka Date: Wed, 26 Apr 2023 12:44:11 +0200 Subject: [PATCH] app/fuzz: discard randoms of insufficient length LLVMFuzzerRunDriver does not allow to specify minimum input length, return immediately when data insufficient. Signed-off-by: Sebastian Brzezinka Change-Id: I306e1774b17b04108f2454b2fdaadb4d912bd274 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17884 Reviewed-by: Jim Harris Reviewed-by: Ben Walker Tested-by: SPDK CI Jenkins --- test/app/fuzz/llvm_nvme_fuzz/llvm_nvme_fuzz.c | 4 ++++ test/app/fuzz/llvm_vfio_fuzz/llvm_vfio_fuzz.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/test/app/fuzz/llvm_nvme_fuzz/llvm_nvme_fuzz.c b/test/app/fuzz/llvm_nvme_fuzz/llvm_nvme_fuzz.c index 2c787aa4f..36c517866 100644 --- a/test/app/fuzz/llvm_nvme_fuzz/llvm_nvme_fuzz.c +++ b/test/app/fuzz/llvm_nvme_fuzz/llvm_nvme_fuzz.c @@ -781,6 +781,10 @@ TestOneInput(const uint8_t *data, size_t size) int ret = 0; struct spdk_nvme_detach_ctx *detach_ctx = NULL; + if (size < g_fuzzer->bytes_per_cmd) { + return -1; + } + g_ctrlr = spdk_nvme_connect(&g_trid, NULL, 0); if (g_ctrlr == NULL) { fprintf(stderr, "spdk_nvme_connect() failed for transport address '%s'\n", diff --git a/test/app/fuzz/llvm_vfio_fuzz/llvm_vfio_fuzz.c b/test/app/fuzz/llvm_vfio_fuzz/llvm_vfio_fuzz.c index 165a759e9..3ee380a06 100644 --- a/test/app/fuzz/llvm_vfio_fuzz/llvm_vfio_fuzz.c +++ b/test/app/fuzz/llvm_vfio_fuzz/llvm_vfio_fuzz.c @@ -107,6 +107,10 @@ TestOneInput(const uint8_t *data, size_t size) char ctrlr_path[PATH_MAX]; int ret = 0; + if (size < g_fuzzer->bytes_per_cmd) { + return -1; + } + snprintf(ctrlr_path, sizeof(ctrlr_path), "%s/cntrl", g_ctrlr_path); ret = access(ctrlr_path, F_OK); if (ret != 0) {