On 2020-07-27, Al Viro <v...@zeniv.linux.org.uk> wrote: > On Mon, Jul 27, 2020 at 05:05:54PM +0100, Al Viro wrote: >> On Thu, Jul 23, 2020 at 11:51:01AM -0400, Nick Bowler wrote: >> > After installing Linux 5.8-rc6, it seems cryptsetup can no longer >> > open LUKS volumes. Regardless of the entered passphrase (correct >> > or otherwise), the result is a very unhelpful "Keyslot open failed." >> > message. [...] > Oh, fuck... Please see if the following fixes your reproducer; the braino > is, of course, that instead of fetching ucmsg->cmsg_len into ucmlen we read > the entire thing into cmsg. Other uses of ucmlen had been replaced with > cmsg.cmsg_len; this one was missed. > > Signed-off-by: Al Viro <v...@zeniv.linux.org.uk> > --- > diff --git a/net/compat.c b/net/compat.c > index 5e3041a2c37d..434838bef5f8 100644 > --- a/net/compat.c > +++ b/net/compat.c > @@ -202,7 +202,7 @@ int cmsghdr_from_user_compat_to_kern(struct msghdr > *kmsg, struct sock *sk, > > /* Advance. */ > kcmsg = (struct cmsghdr *)((char *)kcmsg + tmp); > - ucmsg = cmsg_compat_nxthdr(kmsg, ucmsg, ucmlen); > + ucmsg = cmsg_compat_nxthdr(kmsg, ucmsg, cmsg.cmsg_len); > } > > /*
This patch appears to resolve the problem when applied on top of 5.8-rc7. Thanks, Nick