test_var_expand_LDADD = $(test_libs) $(LIBDOVECOT_TEST_LIBS)
if USE_FUZZER
-fuzz_programs = fuzz-var-expand
+fuzz_programs = fuzz-var-expand fuzz-var-expand-import
nodist_EXTRA_fuzz_var_expand_SOURCES = force-cxx-linking.cxx
fuzz_var_expand_LDADD = $(test_libs) $(LIBDOVECOT_TEST_LIBS)
fuzz_var_expand_DEPENDENCIES = libvar_expand.la
+fuzz_var_expand_import_CPPFLAGS = $(FUZZER_CPPFLAGS)
+fuzz_var_expand_import_LDFLAGS = $(FUZZER_LDFLAGS)
+fuzz_var_expand_import_SOURCES = fuzz-var-expand-import.c
+fuzz_var_expand_import_LDADD = $(test_libs) $(LIBDOVECOT_TEST_LIBS)
+fuzz_var_expand_import_DEPENDENCIES = libvar_expand.la
+
noinst_PROGRAMS += $(fuzz_programs)
endif
--- /dev/null
+/* Copyright (c) 2025 Dovecot authors, see the included COPYING file */
+
+#include "lib.h"
+#include "fuzzer.h"
+#include "var-expand.h"
+
+FUZZ_BEGIN_DATA(const void *input, size_t len)
+{
+ struct var_expand_program *program = NULL;
+ const char *error ATTR_UNUSED = NULL;
+
+ if (var_expand_program_import_sized(input, len, &program, &error) == 0)
+ var_expand_program_free(&program);
+}
+FUZZ_END