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)
committerMarcel Holtmann <marcel@holtmann.org>
Sun, 17 Jul 2016 17:59:26 +0000 (19:59 +0200)
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>
Cc: stable@vger.kernel.org
net/bluetooth/l2cap_sock.c

index 388ee8b5914506d0a02757fa00def796ce3ede4e..1842141baedb691c6bfb35b79090ed42223f1db4 100644 (file)
@@ -927,7 +927,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;
                }