untrusted comment: signature from openbsd 6.1 base secret key
RWQEQa33SgQSEhRKa5FigUv6AatIyXYO6cfuazpsE+KM50R2dY83u9KmvQtolOIt1D6su0FhJDkX8k35uMfzVzQF58L8pt9BDwM=
OpenBSD 6.1 errata 018, August 3, 2017:
An alignment issue in recv() may result in an info leak via ktrace().
And then rebuild and install a new kernel:
KK=`sysctl -n kern.osversion | cut -d# -f1`
cd /usr/src/sys/arch/`machine`/compile/$KK
make obj
make config
make
make install
Index: sys/kern/uipc_syscalls.c
===================================================================
RCS file: /cvs/src/sys/kern/uipc_syscalls.c,v
diff -u -p -u -r1.151 -r1.151.4.2
--- sys/kern/uipc_syscalls.c 27 Mar 2017 11:45:49 -0000 1.151
+++ sys/kern/uipc_syscalls.c 1 Aug 2017 22:21:24 -0000 1.151.4.2
@@ -879,16 +879,16 @@ recvit(struct proc *p, int s, struct msg
i = len;
}
error = copyout(mtod(m, caddr_t), cp, i);
+#ifdef KTRACE
+ if (KTRPOINT(p, KTR_STRUCT) && error == 0 && i)
+ ktrcmsghdr(p, mtod(m, char *), i);
+#endif
if (m->m_next)
i = ALIGN(i);
cp += i;
len -= i;
if (error != 0 || len <= 0)
break;
-#ifdef KTRACE
- if (KTRPOINT(p, KTR_STRUCT) && i)
- ktrcmsghdr(p, mtod(m, char *), i);
-#endif
} while ((m = m->m_next) != NULL);
len = cp - (caddr_t)mp->msg_control;
}