sound: Drain buffer selinfo in sndbuf_free()

Prevent a use-after-free in kern_poll() by making sure the buffer's
selinfo is drained. This is required for a subsequent patch that
implements asynchronous audio device detach.

Reported by:	KASAN
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D44544
This commit is contained in:
Christos Margiolis 2024-03-29 23:29:23 +08:00
parent 6baddb6b11
commit fba54d0179

View file

@ -147,6 +147,7 @@ sndbuf_free(struct snd_dbuf *b)
} else
free(b->buf, M_DEVBUF);
}
seldrain(sndbuf_getsel(b));
b->tmpbuf = NULL;
b->shadbuf = NULL;