diff --git a/[refs] b/[refs] index 4e87ed6036b7..fe571bc3941e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d96fc659aeb27686cef42d305cfd0c9702f8841c +refs/heads/master: acdd5985364f8dc511a0762fab2e683f29d9d692 diff --git a/trunk/net/sctp/socket.c b/trunk/net/sctp/socket.c index 06b42b7f5a02..92ba71dfe080 100644 --- a/trunk/net/sctp/socket.c +++ b/trunk/net/sctp/socket.c @@ -4133,9 +4133,10 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len, static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval, int __user *optlen) { - if (len < sizeof(struct sctp_event_subscribe)) + if (len <= 0) return -EINVAL; - len = sizeof(struct sctp_event_subscribe); + if (len > sizeof(struct sctp_event_subscribe)) + len = sizeof(struct sctp_event_subscribe); if (put_user(len, optlen)) return -EFAULT; if (copy_to_user(optval, &sctp_sk(sk)->subscribe, len))