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

(cherry picked from commit fba54d0179)
This commit is contained in:
Christos Margiolis 2024-03-29 23:29:23 +08:00
parent b556c37f83
commit ea2275e72c

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;