]> git.ipfire.org Git - people/arne_f/kernel.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 20 Aug 2016 09:53:20 +0000 (11:53 +0200)
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/bluetooth/l2cap_sock.c

index 06a7a769737f70799c2fa0c105774771b2911e81..5fb1cc21df559854aa0be78c6b4bed59ba4da0ef 100644 (file)
@@ -922,7 +922,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;
                }