]> git.baikalelectronics.ru Git - kernel.git/commit
fix a braino in cmsghdr_from_user_compat_to_kern()
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 27 Jul 2020 18:22:20 +0000 (19:22 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Jul 2020 20:25:39 +0000 (13:25 -0700)
commit0df02e830e3b3fe67c60d8a456557baf3dce163d
tree84fc012351abcb4d314b7711b0bc2a69e4a046b7
parentcd74accdc5664062365ef4ba22a9e33b9a2da3d1
fix a braino in cmsghdr_from_user_compat_to_kern()

commit a5757cfa6f27 ("switch cmsghdr_from_user_compat_to_kern() to
copy_from_user()") missed one of the places where ucmlen should've been
replaced with cmsg.cmsg_len, now that we are fetching the entire struct
rather than doing it field-by-field.

As the result, compat sendmsg() with several different-sized cmsg
attached started to fail with EINVAL.  Trivial to fix, fortunately.

Fixes: a5757cfa6f27 ("switch cmsghdr_from_user_compat_to_kern() to copy_from_user()")
Reported-by: Nick Bowler <nbowler@draconx.ca>
Tested-by: Nick Bowler <nbowler@draconx.ca>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/compat.c