aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/sctp/socket.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index fb02c7033307..9fbb6feb8c27 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -4687,7 +4687,7 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len,
4687static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval, 4687static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
4688 int __user *optlen) 4688 int __user *optlen)
4689{ 4689{
4690 if (len <= 0) 4690 if (len == 0)
4691 return -EINVAL; 4691 return -EINVAL;
4692 if (len > sizeof(struct sctp_event_subscribe)) 4692 if (len > sizeof(struct sctp_event_subscribe))
4693 len = sizeof(struct sctp_event_subscribe); 4693 len = sizeof(struct sctp_event_subscribe);
@@ -6430,6 +6430,9 @@ static int sctp_getsockopt(struct sock *sk, int level, int optname,
6430 if (get_user(len, optlen)) 6430 if (get_user(len, optlen))
6431 return -EFAULT; 6431 return -EFAULT;
6432 6432
6433 if (len < 0)
6434 return -EINVAL;
6435
6433 lock_sock(sk); 6436 lock_sock(sk);
6434 6437
6435 switch (optname) { 6438 switch (optname) {