mISDN: fix MISDN_TIME_STAMP handling
[linux-block.git] / drivers / isdn / mISDN / socket.c
index 2776ca5fc33f39019062b3d9fb8f02547a5e4139..b215b28cad7b76a5764bda8021cece74ec5cd40f 100644 (file)
@@ -401,23 +401,23 @@ data_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
 }
 
 static int data_sock_setsockopt(struct socket *sock, int level, int optname,
-                               sockptr_t optval, unsigned int len)
+                               sockptr_t optval, unsigned int optlen)
 {
        struct sock *sk = sock->sk;
        int err = 0, opt = 0;
 
        if (*debug & DEBUG_SOCKET)
                printk(KERN_DEBUG "%s(%p, %d, %x, optval, %d)\n", __func__, sock,
-                      level, optname, len);
+                      level, optname, optlen);
 
        lock_sock(sk);
 
        switch (optname) {
        case MISDN_TIME_STAMP:
-               if (copy_from_sockptr(&opt, optval, sizeof(int))) {
-                       err = -EFAULT;
+               err = copy_safe_from_sockptr(&opt, sizeof(opt),
+                                            optval, optlen);
+               if (err)
                        break;
-               }
 
                if (opt)
                        _pms(sk)->cmask |= MISDN_TIME_STAMP;