|
@@ -657,19 +657,15 @@ static int do_dccp_getsockopt(struct sock *sk, int level, int optname,
|
|
|
(__be32 __user *)optval, optlen);
|
|
|
case DCCP_SOCKOPT_GET_CUR_MPS:
|
|
|
val = dp->dccps_mss_cache;
|
|
|
- len = sizeof(val);
|
|
|
break;
|
|
|
case DCCP_SOCKOPT_SERVER_TIMEWAIT:
|
|
|
val = dp->dccps_server_timewait;
|
|
|
- len = sizeof(val);
|
|
|
break;
|
|
|
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,
|
|
@@ -681,6 +677,7 @@ static int do_dccp_getsockopt(struct sock *sk, int level, int optname,
|
|
|
return -ENOPROTOOPT;
|
|
|
}
|
|
|
|
|
|
+ len = sizeof(val);
|
|
|
if (put_user(len, optlen) || copy_to_user(optval, &val, len))
|
|
|
return -EFAULT;
|
|
|
|