diff options
author | Mark Johnston <markj@FreeBSD.org> | 2023-04-27 16:58:56 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2023-04-27 16:58:56 +0000 |
commit | ec45f952a232068ba17b091e96a8b6e79bcec85a (patch) | |
tree | c9e95b39115946f2f65c613ed84bb3cbf7dd2f69 /sys/kern/uipc_sockbuf.c | |
parent | 83fd35b3f3fa580d2b99874abd1f67ee61dcb659 (diff) | |
download | src-ec45f952a232068ba17b091e96a8b6e79bcec85a.tar.gz src-ec45f952a232068ba17b091e96a8b6e79bcec85a.zip |
Diffstat (limited to 'sys/kern/uipc_sockbuf.c')
-rw-r--r-- | sys/kern/uipc_sockbuf.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/sys/kern/uipc_sockbuf.c b/sys/kern/uipc_sockbuf.c index 61ec0c794270..170f67be4216 100644 --- a/sys/kern/uipc_sockbuf.c +++ b/sys/kern/uipc_sockbuf.c @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include <sys/lock.h> #include <sys/malloc.h> #include <sys/mbuf.h> +#include <sys/msan.h> #include <sys/mutex.h> #include <sys/proc.h> #include <sys/protosw.h> @@ -908,6 +909,7 @@ sbappend_locked(struct sockbuf *sb, struct mbuf *m, int flags) if (m == NULL) return; + kmsan_check_mbuf(m, "sbappend"); sbm_clrprotoflags(m, flags); SBLASTRECORDCHK(sb); n = sb->sb_mb; @@ -1022,6 +1024,8 @@ sbappendstream_locked(struct sockbuf *sb, struct mbuf *m, int flags) KASSERT(m->m_nextpkt == NULL,("sbappendstream 0")); + kmsan_check_mbuf(m, "sbappend"); + #ifdef KERN_TLS /* * Decrypted TLS records are appended as records via @@ -1170,7 +1174,10 @@ sbappendrecord_locked(struct sockbuf *sb, struct mbuf *m0) if (m0 == NULL) return; + + kmsan_check_mbuf(m0, "sbappend"); m_clrprotoflags(m0); + /* * Put the first mbuf on the queue. Note this permits zero length * records. @@ -1207,6 +1214,12 @@ sbappendaddr_locked_internal(struct sockbuf *sb, const struct sockaddr *asa, struct mbuf *m0, struct mbuf *control, struct mbuf *ctrl_last) { struct mbuf *m, *n, *nlast; + + if (m0 != NULL) + kmsan_check_mbuf(m0, "sbappend"); + if (control != NULL) + kmsan_check_mbuf(control, "sbappend"); + #if MSIZE <= 256 if (asa->sa_len > MLEN) return (0); @@ -1317,6 +1330,9 @@ sbappendcontrol_locked(struct sockbuf *sb, struct mbuf *m0, { struct mbuf *m, *mlast; + kmsan_check_mbuf(m0, "sbappend"); + kmsan_check_mbuf(control, "sbappend"); + sbm_clrprotoflags(m0, flags); m_last(control)->m_next = m0; |