DragonFlyBSD Kernel Audit
DF-2838 / fix.diff
← back to finding ↓ download raw
--- a/sys/kern/uipc_socket2.c
+++ b/sys/kern/uipc_socket2.c
@@ -187,6 +187,7 @@ _ssb_lock(struct signalsockbuf *ssb)
 void
 ssbtoxsockbuf(struct signalsockbuf *ssb, struct xsockbuf *xsb)
 {
+	bzero(xsb, sizeof(*xsb));	/* also clears tail padding */
 	xsb->sb_cc = ssb->ssb_cc;
 	xsb->sb_hiwat = ssb->ssb_hiwat;
 	xsb->sb_mbcnt = ssb->ssb_mbcnt;
@@ -825,6 +826,7 @@ dup_sockaddr(const struct sockaddr *sa)
 void
 sotoxsocket(struct socket *so, struct xsocket *xso)
 {
+	bzero(xso, sizeof(*xso));	/* also clears padding */
 	xso->xso_len = sizeof *xso;
 	xso->xso_so = so;
 	xso->so_type = so->so_type;