From: Stephan Bosch Date: Thu, 27 Nov 2025 16:49:16 +0000 (+0100) Subject: lib-test: fuzzer - Fully deinitialize lib for each cycle X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e6b6e1a1b03c1634bf722094307f767da514f510;p=thirdparty%2Fdovecot%2Fcore.git lib-test: fuzzer - Fully deinitialize lib for each cycle This will allow running address sanitizer as part of the fuzz. --- diff --git a/src/lib-test/fuzzer.c b/src/lib-test/fuzzer.c index 38300479d7..09f0e57bb0 100644 --- a/src/lib-test/fuzzer.c +++ b/src/lib-test/fuzzer.c @@ -18,6 +18,7 @@ void fuzzer_init(struct fuzzer_context *fuzz_ctx) lib_init(); lib_signals_init(); lib_signals_ignore(SIGPIPE, TRUE); + fuzz_ctx->lib_initialized = TRUE; } fuzz_ctx->fd = -1; fuzz_ctx->fd_pump = -1; @@ -34,6 +35,10 @@ void fuzzer_deinit(struct fuzzer_context *fuzz_ctx) (void)close(fuzz_ctx->fd_pump); if (fuzz_ctx->ioloop != NULL) io_loop_destroy(&fuzz_ctx->ioloop); + if (fuzz_ctx->lib_initialized) { + lib_signals_deinit(); + lib_deinit(); + } } static void pump_finished(enum iostream_pump_status status ATTR_UNUSED, diff --git a/src/lib-test/fuzzer.h b/src/lib-test/fuzzer.h index 8150b583e0..08962e4229 100644 --- a/src/lib-test/fuzzer.h +++ b/src/lib-test/fuzzer.h @@ -8,6 +8,8 @@ struct fuzzer_context { int fd, fd_pump; struct iostream_pump *pump; struct ioloop *ioloop; + + bool lib_initialized:1; }; #define FUZZ_BEGIN_DATA(data_arg, size_arg) \