From b9ca419a21d109948bf0fcea5c59725f1fe0cd7b Mon Sep 17 00:00:00 2001 From: Mark Johnston Date: Tue, 13 Jul 2021 17:45:49 -0400 Subject: [PATCH] fifo: Explicitly initialize generation numbers when opening The fi_rgen and fi_wgen fields are generation numbers used when sleeping waiting for the other end of the fifo to be opened. The fields were not explicitly initialized after allocation, but this was harmless. To avoid false positives from KMSAN, though, ensure that they get initialized to zero. Reported by: KMSAN MFC after: 2 weeks Sponsored by: The FreeBSD Foundation --- sys/fs/fifofs/fifo_vnops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/fs/fifofs/fifo_vnops.c b/sys/fs/fifofs/fifo_vnops.c index 33c2c8ab2951..d2a51de84fba 100644 --- a/sys/fs/fifofs/fifo_vnops.c +++ b/sys/fs/fifofs/fifo_vnops.c @@ -154,9 +154,9 @@ fifo_open(ap) error = pipe_named_ctor(&fpipe, td); if (error != 0) return (error); - fip = malloc(sizeof(*fip), M_VNODE, M_WAITOK); + fip = malloc(sizeof(*fip), M_VNODE, M_WAITOK | M_ZERO); fip->fi_pipe = fpipe; - fpipe->pipe_wgen = fip->fi_readers = fip->fi_writers = 0; + fpipe->pipe_wgen = 0; KASSERT(vp->v_fifoinfo == NULL, ("fifo_open: v_fifoinfo race")); vp->v_fifoinfo = fip; }