From 19189e3f6f18b13e4f9c947c99062e658e98827d Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Wed, 24 Apr 2024 14:45:12 -0400 Subject: ioq: Fix uninitialized values in ioq_create() cleanup path I switched from ZALLOC_FLEX() to ALLOC_FLEX() in hopes that msan would catch uninitialized values in ioq_thread_create(), but in doing so, forgot to initialize all fields before the first goto fail. Fixes: f64f76b ("ioq: Copy ring_ops from the previous thread") --- src/ioq.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/ioq.c b/src/ioq.c index 189bdac..43a1b35 100644 --- a/src/ioq.c +++ b/src/ioq.c @@ -918,17 +918,14 @@ static void ioq_thread_join(struct ioq_thread *thread) { } struct ioq *ioq_create(size_t depth, size_t nthreads) { - struct ioq *ioq = ALLOC_FLEX(struct ioq, threads, nthreads); + struct ioq *ioq = ZALLOC_FLEX(struct ioq, threads, nthreads); if (!ioq) { goto fail; } ioq->depth = depth; - ioq->size = 0; - ioq->cancel = false; ARENA_INIT(&ioq->ents, struct ioq_ent); - #if BFS_USE_LIBURING && BFS_USE_STATX ARENA_INIT(&ioq->xbufs, struct statx); #endif -- cgit v1.2.3