]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Bluetooth: Fix l2cap_sock_setsockopt() with optname BT_RCVMTU
authorAmadeusz Sławiński <amadeusz.slawinski@tieto.com>
Thu, 14 Jul 2016 08:50:23 +0000 (10:50 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Sun, 20 Nov 2016 01:16:52 +0000 (01:16 +0000)
commit 23bc6ab0a0912146fd674a0becc758c3162baabc upstream.

When we retrieve imtu value from userspace we should use 16 bit pointer
cast instead of 32 as it's defined that way in headers. Fixes setsockopt
calls on big-endian platforms.

Signed-off-by: Amadeusz Sławiński <amadeusz.slawinski@tieto.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
net/bluetooth/l2cap_sock.c

index d0fd8b04f2e6660ddcc4778c267e1651cf150cbf..071d35c9f3b4894737fc79d3db2e81abd7b948e7 100644 (file)
@@ -921,7 +921,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
                        break;
                }
 
-               if (get_user(opt, (u32 __user *) optval)) {
+               if (get_user(opt, (u16 __user *) optval)) {
                        err = -EFAULT;
                        break;
                }