Make sctp_setsockopt_events() able to accept sctp_event_subscribe
structures longer than the current definitions.

This should prevent unjustified setsockopt() failures due to struct
sctp_event_subscribe extensions (as in 4.11 and 4.12) when using
binaries that should be compatible, but were built with later kernel
uapi headers.

Signed-off-by: Julien Gomes <jul...@arista.com>
---
 net/sctp/socket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index 9644bdc8e85c..f9717e2789da 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -2311,7 +2311,7 @@ static int sctp_setsockopt_events(struct sock *sk, char 
__user *optval,
        int i;
 
        if (optlen > sizeof(struct sctp_event_subscribe))
-               return -EINVAL;
+               optlen = sizeof(struct sctp_event_subscribe);
 
        if (copy_from_user(&subscribe, optval, optlen))
                return -EFAULT;
-- 
2.20.1

Reply via email to