|
@@ -575,7 +575,7 @@ static int do_dccp_getsockopt(struct sock *sk, int level, int optname,
|
|
|
if (get_user(len, optlen))
|
|
|
return -EFAULT;
|
|
|
|
|
|
- if (len < sizeof(int))
|
|
|
+ if (len < (int)sizeof(int))
|
|
|
return -EINVAL;
|
|
|
|
|
|
dp = dccp_sk(sk);
|
|
@@ -589,9 +589,11 @@ static int do_dccp_getsockopt(struct sock *sk, int level, int optname,
|
|
|
(__be32 __user *)optval, optlen);
|
|
|
case DCCP_SOCKOPT_SEND_CSCOV:
|
|
|
val = dp->dccps_pcslen;
|
|
|
+ len = sizeof(val);
|
|
|
break;
|
|
|
case DCCP_SOCKOPT_RECV_CSCOV:
|
|
|
val = dp->dccps_pcrlen;
|
|
|
+ len = sizeof(val);
|
|
|
break;
|
|
|
case 128 ... 191:
|
|
|
return ccid_hc_rx_getsockopt(dp->dccps_hc_rx_ccid, sk, optname,
|